أيضًا، بما أنني بدأت في هذا المسار، أحصل الآن على هذا عندما أحاول تعديل نصوص معينة في الموقع:
4 إعجابات
أنا قادر على تكرار ذلك. هذا هو عنوان URL الذي لا يعمل:
/admin/customize/site_texts?q=confirm%20old
Moin
8 أغسطس 2025، 3:48م
4
لا أتذكر أن الرابط كان يعمل بدون معلمة locale
/admin/customize/site_texts?q=confirm%20old&locale=en يعمل بشكل جيد بالنسبة لي.
وأعتقد أن حقيقة أنك لا تستطيع تخصيص نص “تأكيد البريد الإلكتروني القديم” أمر مقصود. إنه بريد إلكتروني يُرسل فقط إلى الموظفين.
codinghorror:
ومع ذلك
قام المخترق بتعديل قالب البريد الإلكتروني القديم للموظفين ، بحيث يتضمن رابط “نعم، تحقق من تغيير البريد الإلكتروني القديم هذا” وبمجرد إرساله إلى البريد الإلكتروني القديم و النقر عليه ، حصل المخترق فجأة على إذن لتغيير البريد الإلكتروني القديم إلى بريد إلكتروني جديد يتحكم فيه
ضع في اعتبارك أن هذا هجوم متطور للغاية ومتعمق ، وكان من الممكن إيقافه على مستويات أعلى بكثير من خلال ممارسات موصى بها بالفعل، فقط اقرأ من خلال استدعاءات المصباح أعلاه.
ومع ذلك، نعتقد بقوة في كوننا آمنين افتراضيًا في Discourse، ونعتقد أن هناك المزيد الذي يمكننا القيام به بعد تحليل هذه القصة عن كثب. ونتيجة لذلك، قمنا للتو بتطبيق تغيير commit/9f422c93f67f156c3216a57cdf1afc0c5fc94e28 بحيث لا أحد ، ولا حتى المسؤول، يمكنه تعديل قالب البريد الإلكتروني هذا بالتحديد. نعتقد أنها حالة نادرة، ولكنها تستحق المعالجة، لأن:
قالب البريد الإلكتروني هذا يُرسل فقط إلى الموظفين عند تغيير البريد الإلكتروني، حيث يجب تأكيد كل من عنوان البريد الإلكتروني القديم والجديد. بالنسبة للمستخدم العادي، يجب تأكيد عنوان البريد الإلكتروني الجديد فقط. لذا فإن تغيير هذا القالب لأسباب تصميمية تجميلية سيراه الموظفون فقط، وليس المستخدمون العاديون أبدًا، وبالتالي فهو غير مهم.
خطر السماح للمسؤولين بتغيير هذا القالب مرتفع للغاية، كما هو موضح بالقصة الحقيقية أعلاه التي حدثت بالفعل، وكانت الخطوة الحاسمة التي سمحت للمهاجم بالوصول إلى قاعدة بيانات Discourse الكاملة.
إعجابَين (2)
إذًا، هل هذه مشكلة #تجربة_مستخدم أيضًا؟ لا ينبغي أن يكون من الممكن الوصول إلى صفحة غامضة بعنوان “تم رفض الوصول” عند البحث عن نصوص الموقع ثم تعديلها.
إعجابَين (2)
RGJ
(Richard - Communiteq)
8 أغسطس 2025، 7:14م
7
يبدو أن الرسالة المخصصة لا تصل إلى واجهة المستخدم؟
3 إعجابات
Moin
9 أغسطس 2025، 12:27م
8
لفت انتباهي أنه منذ منشور Codinghorror، تمت إضافة إعداد require change email confirmation (يتطلب تأكيد تغيير البريد الإلكتروني). هذا يعني أنه يمكن الآن إرسال الرسالة إلى أكثر من مجرد الموظفين.
كان السبب الأصلي لحظر التعديلات على هذا القالب صحيحًا في ذلك الوقت، ولكنه اليوم يوفر حماية مختلفة. يمكن للمهاجم الذي يعرف كلمة مرور المسؤول ببساطة:
استخدام كلمة المرور لإعداد المصادقة الثنائية لهذا الحساب.
إنشاء حساب جديد.
استخدام رمز المصادقة الثنائية لمنح الحساب الجديد حقوق المسؤول.
من هناك، يمكنهم إرسال النسخة الاحتياطية إلى عنوان بريدهم الإلكتروني الخاص دون الحاجة إلى مسؤول للنقر على رابط لتأكيد تغيير العنوان.
لذا السؤال هو: هل لا يزال حظر التعديلات على هذا القالب منطقيًا؟ يتم إرساله الآن إلى المستخدمين العاديين ولم يعد يحمي تنزيل النسخة الاحتياطية.
أيضًا، يتم الآن تثبيت Data Explorer دائمًا ويمكن استخدامه للوصول إلى قاعدة البيانات.
وهذا صحيح والحل هو عدم عرضها عند التصفية/البحث عنها
main ← fix-filter-restricted-email-template-keys-from-site-text-search
opened 12:55PM - 24 Dec 25 UTC
Admins searching for "confirm_old_email" in site texts would see the restricted … keys in results, click them, and hit a confusing "Access Denied" page. Now these keys are filtered out of search results entirely.
Also added `confirm_old_email_add` to the restricted list - it was missing but has the same restriction need as `confirm_old_email`.
Refactored so `SiteTextsController::RESTRICTED_KEYS` is the single source of truth, with `EmailTemplatesController` deriving from it.
Ref - https://meta.discourse.org/t/377902
Ref - https://meta.discourse.org/t/392070
**No more listed in email templates**
<img width="1418" height="1001" alt="2025-12-24 @ 13 49 22" src="https://github.com/user-attachments/assets/339f69c5-2068-4683-9ba9-71e2393f5ac2" />
**No more listed in site texts**
<img width="1418" height="1001" alt="2025-12-24 @ 13 48 16" src="https://github.com/user-attachments/assets/10eff780-d8ec-4a9a-83e4-6d521d31e5ea" />