شكراً لتوضيحك ذلك. للتوضيح فقط، ما هو اسم إعداد الموقع المخفي؟ وهل يقوم بتعطيل البحث بالكامل للمستخدمين المجهولين، أم يخفي النتائج فقط؟ أنا أبحث عن طريقة لحظر الوصول على مستوى المتحكم (controller)، لذلك أتساءل عما إذا كان هذا الإعداد وحده كافياً أم أن بعض التعليمات البرمجية المخصصة لا تزال مطلوبة.
الآن صفحة /search غير قابلة للوصول = رائع
الآن زر البحث في الواجهة الأمامية يعود فوراً بـ: لقد قمت بهذا الإجراء مرات عديدة = رائع
يمكنك إخفاء زر البحث باستخدام:
ولكن السؤال هو: هل هذا شامل؟ هل يمكن لأي شخص إنشاء ملف تعريف ارتباط بسيط للجلسة ليبدو وكأنه متصل حتى يتمكن من الوصول إلى محتوى الموقع من خلال عمليات البحث؟
حل أكثر شمولاً ولكنه غير مكتمل:
الملف هو: /var/www/discourse/app/controllers/search_controller.rb
التعديل: أضف “if current_user.present؟” بعد “def show” وأضف “end” في أسفل الشرط.
ومع ذلك، لم أتمكن من جعله مستمراً بعد إعادة التشغيل، لذا نرحب بأي شخص لإخبارنا بكيفية جعله مستمراً بعد إعادة التشغيل باستخدام خطافات app.yml after_code replace: feature.
أعني مستخدمًا غير مسجل دخوله يقوم بإنشاء ملف تعريف ارتباط للجلسة ليتظاهر بأنه مسجل دخوله، ولكن ربما أتعمق كثيرًا هنا، حيث أفترض أن دالة currentUser تتحقق من مفتاح الجلسة.
“ستكون هذه مشكلة أمنية. إذا تمكنت من تحقيق ذلك، فتأكد من الإبلاغ عنها إلى HackerOne”
لا، أنا جديد في discourse، لا يمكنني حتى الاقتباس بشكل صحيح ، كنت أسأل فقط، ربما كان هناك مهندس discourse حول ؛ على أي حال، لقد حصلنا على حلنا لهذا الموضوع بفضل Falco
لكن لا تتردد في تجربة هذا على مستوى المتحكم:
/var/www/discourse/app/controllers/search_controller.rb
التعديل: أضف "if current_user.present؟" بعد "def show" وأضف "end" في نهاية الشرط.