السماح للمسؤولين دائمًا بتحرير رسائل البريد الإلكتروني حتى عند تعطيل خيار "تحرير البريد الإلكتروني بعد التسجيل"

تم التعديل من أجل توضيحات جوهرية ومعايير اقتراح أكثر تفكيرًا لمساعدة أعضاء المجتمع الآخرين على فهم فائدة تحسين هذه الميزة.

تحديث إعداد قابلية تحرير البريد الإلكتروني للسماح بخيارات إضافية بشأن من يمكنه تحرير عناوين البريد الإلكتروني، حيث صُمم الإعداد على سبيل المثال:

  • جميع المستخدمين
  • مستخدمون فقط [لا يمكن للمسؤولين العاديين أو المشرفين ذلك دون استخدام وحدة تحكم Rails أو تغيير الإعداد.]
  • طاقم العمل فقط
  • المسؤولون فقط

إذا كان الإعداد مفعلًا [وهو الحال افتراضيًا]، فسيتم إدخال آلية حماية بنظام وضع السوبر (Sudo-Mode) لتنفيذ الإجراء بصفتك مسؤولًا [وليس المستخدم الذي ينتمي إليه الحساب الذي يتم تحريره]؛ وهذا يسمح بإدخال هذا الإعداد مع بعض النقاط الرئيسية المذكورة أدناه لتكون محمية من التغييرات غير المرغوب فيها.

الأسباب/لماذا يجب تنفيذ ذلك

إذا أردت تعطيل الإعداد لأنك تريد السيطرة على هذا الأمر، مثل أن يطلب المستخدمون التغيير وتقوم به أنت كإجراء أمني، أو لسبب آخر، ولكنك تحتاج لسبب ما إلى تحرير البريد الإلكتروني؛ مع تعطيل هذا الإعداد، حتى المسؤولون لا يمكنهم تحرير عناوين البريد الإلكتروني.

وهنا تكمن المشكلة الجديدة إذا انطبق واحد أو أكثر من حالات الاستخدام.

لتحرير عناوين البريد الإلكتروني للمستخدمين حاليًا؛ يمكنك إما 1) تفعيله في علامة تبويب أخرى، وتحرير البريد الإلكتروني بسرعة، أو 2) فتح وحدة تحكم Rails وتغيير البريد الإلكتروني يدويًا.

بالنسبة لمعظم عمليات الإدارة اليومية العادية، قد يؤدي هذا إلى تحدي تقني غير مرغوب فيه. إذا اعتمدت فقط على فعل كل شيء في وحدة تحكم Rails، بينما الإعداد موجود بالفعل.

كيف يمكن أن تساعد الآليات الإضافية في جعل هذه الميزة حقيقة واقعة:

  • إذا تُرك مفعلًا بسبب أثر تقني، فقد يتم تغيير عناوين البريد الإلكتروني للمستخدمين المخترقين.
  • قد يرتكب المسؤولون أخطاءً أو يقومون بتغييرات غير مصرح بها.
  • سيشعر المستخدمون بأن الأشخاص الذين يمتلكون هذه الصلاحية محميون من التغييرات التي تتم بسوء نية.

تمت مناقشة هذا الموضوع آخر مرة في 2015، ورغم صحة أنه يمكنك تحرير عناوين البريد الإلكتروني، إلا أنك لا تستطيع تحريرها من خلال عرض المسؤول؛ بل يُخبرك بالانتقال إلى عرض تفضيلات المستخدم، وهو ما أفعله، وحتى بصفتي مسؤولًا لا أستطيع ذلك بسبب قيود هذا الإعداد.

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

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

الاحتكاك هو ميزة أمنية!

لذا فإن الإزعاج الناتج عن ضرورة استخدام وحدة تحكم Rails أو تبديل إعدادات الموقع على نطاق واسع هو في الحقيقة ميزة أمنية حاسمة، حيث يعمل كـ “فرامل أمنية” ويجبر المسؤول على اتباع عملية متعمدة وعالية الاحتكاك لعملية حساسة للغاية.

تغيير عنوان البريد الإلكتروني للمستخدم يعادل تسليم مفاتيح حسابه، حيث يمكن استخدام عنوان البريد الإلكتروني الجديد لتفعيل إعادة تعيين كلمة المرور، مما يؤدي فعليًا إلى حجب المستخدم الأصلي ومنح المالك الجديد للعنوان تحكمًا كاملاً.

بعض نواقل الهجوم الرئيسية التي يمنعها هذا الاحتكاك:

  • اختراق حسابات المسؤولين! - هذا هو الخطر الأهم. إذا تمكن مهاجم من الوصول إلى حساب مسؤول (عبر التصيد أو إعادة استخدام كلمات المرور، إلخ)، فإن وجود زر بسيط في واجهة المستخدم أو أي تبديل آخر سيسمح له بالسيطرة بصمت وسهولة على أي حساب مستخدم آخر، بما في ذلك حسابات الموظفين الآخرين؛ بينما يوفر شرط الوصول إلى سطر الأوامر عبر وحدة تحكم Rails طبقة أمان قوية.

  • الهندسة الاجتماعية! - هذا يفتح الباب أمام الهندسة الاجتماعية. قد يتظاهر مستخدم خبيث بأنه مستخدم شرعي ويقنع مسؤولًا بتغيير عنوان بريده الإلكتروني؛ مرة أخرى، فإن العملية الحالية عالية الاحتكاك تجعل من المرجح أن يتحقق المسؤول من صحة الطلب أو يفكر بجدية في مصداقيته.

  • التهديد الداخلي - قد يساء استخدام هذه الميزة من قبل مسؤول خبيث للسيطرة على الحسابات.

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

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

أقدر اهتمامك، لكنني أعتقد أنك قد تكون أساءت فهم الصورة الكاملة هنا، بما في ذلك ثغرة خطيرة في حجتك حول “الأمان”.

يمكنك بالفعل تعديل رسائل البريد الإلكتروني إذا كان هذا الإعداد مفعلًا؛ وهو مفعل افتراضيًا.

تعريض حسابات المشرفين للخطر! - هذا هو الخطر الأهم. إذا تمكن مهاجم من الوصول إلى حساب مشرف (عبر التصيد أو إعادة استخدام كلمات المرور، إلخ)، فإن زر واجهة مستخدم بسيط أو مفتاح تبديل، سيُتيح له الاستيلاء بهدوء وسهولة على أي حساب مستخدم آخر، بما في ذلك موظفين آخرين؛ بينما يوفر شرط الوصول إلى الـ Shell عبر Rails Console طبقة أمان قوية.

إذا تم اختراق حساب مشرف، يمكن للمخترق ببساطة تفعيل الإعداد الموجود بالفعل اليوم، والقيام بالأشياء التي ذكرتها.

تغيير عنوان بريد المستخدم الإلكتروني يُعادل تسليم مفاتيح حسابه، حيث يمكن استخدام العنوان الجديد لتفعيل إعادة تعيين كلمة المرور، مما يؤدي فعليًا إلى إغلاق الوصول للمستخدم الأصلي ومنح المالك الجديد للبريد الإلكتروني السيطرة الكاملة.

لهذه الأنواع من الإجراءات الإدارية النادرة وعالية المخاطر، يُعتبر استخدام Rails Console مناسبًا لأنه يضمن أن الشخص المنفذ للعملية لديه وصول إلى الخادم وليس جلسة مخترقة. بالإضافة إلى أن الإجراء متعمد ويتطلب معرفة تقنية محددة (وهو مسجل في سجل الـ Shell).

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

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

حسنًا، أدرك الآن وجهة نظرك بشأن وقت تبديل هذا الإعداد.

لا أزال أعتقد بقوة أن وحدة تحكم Rails هي الطريقة المثلى هنا. ربما يكون إضافة ملحق ممكنًا.

عندما تكون الإعدادية مفعّلة

“السماح للمستخدمين بتغيير عنوان بريدهم الإلكتروني بعد التسجيل”

هذا يتيح التعديل لجميع المستخدمين (والمشرفين). الطلب البسيط هو: السماح بتعيين الإعدادية لـ - على سبيل المثال: “المشرفون فقط، المشرفون + المستخدمون، أو المستخدمون فقط”.

إذا قمت ببساطة بـ “تفعيلها”، فإن ذلك يفعّل قدرة الموقع بأكمله على أن يقوم أي شخص [أو المشرفون] بتغيير بريد مستخدم إلكتروني. أثناء التفعيل.

تعيين إعدادية، موجودة بالفعل بشكل جزئي، لتُطبّق على المشرفين فقط يسمح بوظيفة بسيطة موجودة بالفعل بأن لا تكون مجرد سيناريو الكل أو لا شيء.

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

حسناً، بعد التفكير في الأمر أكثر، أعتقد أن طريقة واجهة مستخدم عالية الاحتكاك باستخدام sudo قد تكون الحل الأمثل، حيث أن هذا الإعداد يعتبر “غير آمن” في نافذة التحرير، وليس جميع المدراء يمتلكون وصولاً إلى وحدة تحكم Rails (مثل المواقع المستضافة).

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

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

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

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

شكرًا لك على جعلني أفكر في ميزة «تعديل البريد الإلكتروني» رغم ذلك. إنها نقاش مثير للاهتمام ومعقد بعض الشيء للنظر فيه! :slight_smile:

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

لقد قمت بتعديل المنشور الأصلي لتحسين الصياغة بشكل كبير، وإضافة تلك الاقتراحات الإضافية حول الحذر من التغيير :wink: أعتقد أن ذلك سيحسن الأمور بشكل كبير بشكل عام.

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