خطافات لصيغة 'from: & to:' في yml

مرحباً، أود إعادة بناء التطبيق مع تضمين بعض التعديلات على ملف لتعطيل ميزة البحث للمستخدمين المجهولين. (أكثر من مجرد استخدام CSS)

هل يمكن لأي شخص تزويدي ببعض الوثائق حول صيغة هذه الخطافات (hooks) لجزء from: و to:؟

replace
  filename:"/var/www/discourse/app/controllers/search_controller.rb"
  from:
  to:

في search_controller.rb، أريد فقط استبدال السطر 12:

def show

بـ

def show
  if current_user.present?

والسطر 76:

format.json { render_json_dump(serializer) }

بـ

format.json { render_json_dump(serializer) }
end

يوجد إعداد موقع مخفي لتحقيق ذلك:

rate_limit_search_anon_global_per_minute
إعجاب واحد (1)

شكراً لتوضيحك ذلك. للتوضيح فقط، ما هو اسم إعداد الموقع المخفي؟ وهل يقوم بتعطيل البحث بالكامل للمستخدمين المجهولين، أم يخفي النتائج فقط؟ أنا أبحث عن طريقة لحظر الوصول على مستوى المتحكم (controller)، لذلك أتساءل عما إذا كان هذا الإعداد وحده كافياً أم أن بعض التعليمات البرمجية المخصصة لا تزال مطلوبة.

شكراً لتزويدي بالمتغير، بهذه الوثائق تمكنت من جعله يعمل.

لذلك قمت بتعديل app.yml بالتالي، حفظت، ثم شغلت ./launcher restart app (لا حاجة لإعادة البناء)

env:
  DISCOURSE_RATE_LIMIT_SEARCH_ANON_GLOBAL_PER_MINUTE: 0

الآن صفحة /search غير قابلة للوصول = رائع
الآن زر البحث في الواجهة الأمامية يعود فوراً بـ: لقد قمت بهذا الإجراء مرات عديدة = رائع
يمكنك إخفاء زر البحث باستخدام:

.anon #search-button {
	display: none !important;
}

ولكن السؤال هو: هل هذا شامل؟ هل يمكن لأي شخص إنشاء ملف تعريف ارتباط بسيط للجلسة ليبدو وكأنه متصل حتى يتمكن من الوصول إلى محتوى الموقع من خلال عمليات البحث؟

حل أكثر شمولاً ولكنه غير مكتمل:
الملف هو: /var/www/discourse/app/controllers/search_controller.rb
التعديل: أضف “if current_user.present؟” بعد “def show” وأضف “end” في أسفل الشرط.

ومع ذلك، لم أتمكن من جعله مستمراً بعد إعادة التشغيل، لذا نرحب بأي شخص لإخبارنا بكيفية جعله مستمراً بعد إعادة التشغيل باستخدام خطافات app.yml after_code replace: feature.

هل تقصد تسجيل الدخول لإجراء عمليات البحث؟

في المنشور الأصلي، حددت أنك تريد

وهذا هو ما تفعله هذه الإعدادات.

بالطبع، لن يؤثر ذلك على المستخدمين الذين قاموا بتسجيل الدخول.

أعني مستخدمًا غير مسجل دخوله يقوم بإنشاء ملف تعريف ارتباط للجلسة ليتظاهر بأنه مسجل دخوله، ولكن ربما أتعمق كثيرًا هنا، حيث أفترض أن دالة currentUser تتحقق من مفتاح الجلسة.

:face_with_raised_eyebrow:

ستكون هذه مشكلة أمنية. إذا كان بإمكانك تحقيق ذلك، فتأكد من الإبلاغ عنها على HackerOne

إعجاب واحد (1)

“ستكون هذه مشكلة أمنية. إذا تمكنت من تحقيق ذلك، فتأكد من الإبلاغ عنها إلى HackerOne

لا، أنا جديد في discourse، لا يمكنني حتى الاقتباس بشكل صحيح :slight_smile: ، كنت أسأل فقط، ربما كان هناك مهندس discourse حول :slight_smile: ؛ على أي حال، لقد حصلنا على حلنا لهذا الموضوع بفضل Falco

إعجاب واحد (1)

DISCOURSE_RATE_LIMIT_SEARCH_ANON_GLOBAL_PER_MINUTE: 0

لكن لا تتردد في تجربة هذا على مستوى المتحكم:
/var/www/discourse/app/controllers/search_controller.rb
التعديل: أضف "if current_user.present؟" بعد "def show" وأضف "end" في نهاية الشرط.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.