ما هي هجمات XSS الذاتية؟
البرمجة الذاتية عبر المواقع هي نوع من هجمات الهندسة الاجتماعية التي تخدعك لتنفيذ رمز برمجي ضار في متصفّح الويب. على عكس هجمات XSS العادية التي تعتمد على ثغرات أمنية في تطبيقات الويب تسمح للمهاجمين بإدخال رموز برمجية ضارة، تعتمد هجمات XSS الذاتية على إجراءات تنفيذ الرموز البرمجية المحتملة التي تتّخذها أنت.
تتضمن هجمات Self-XSS عادةً خداع المهاجم لك من أجل نسخ رمز برمجي ضار ولصقه في وحدة تحكّم أدوات مطوّري البرامج في المتصفّح. ويحقّق المهاجم ذلك عادةً من خلال تقديم نوع من المكافآت. وقد يرجع ذلك إلى:
- نؤكّد لك أنّ الرمز سيتيح لك الوصول إلى ميزات مخفية أو مكافآت افتراضية.
- التظاهر بأنّ الرمز هو اختبار أمان أو إصلاح أخطاء
- الوعد بأنّ الرمز يسمح باختراق موقع إلكتروني لتحقيق مكاسب لك
بعد تنفيذ الرمز، يمكن للمهاجم بعد ذلك التحكّم في حسابك. ويمكن أن يسمح ذلك للمهاجم بما يلي:
- سرقة معلوماتك الشخصية، مثل الاسم والعنوان ورقم بطاقة الائتمان
- نشر رسائل أو تعليقات غير مصرّح بها نيابةً عنك
- التحكّم في حساباتك على وسائل التواصل الاجتماعي
- نشر برامج ضارة للمستخدمين الآخرين
كيف تحاول "أدوات مطوري البرامج في Chrome" الحدّ من هجمات XSS الذاتية؟
إنّ السماح للمستخدمين بلصق رمز في "أدوات المطوّر" ثم تنفيذه هو إجراء خطير بطبيعته. وهي أيضًا إحدى الميزات الأساسية في "أدوات مطوّري البرامج في Chrome". لذلك، كان علينا إيجاد توازن بين الحدّ من الهجمات المحتملة لهجوم XSS ذاتيًا وعدم التدخل في عمل المطوّرين الذين يريدون فقط تصحيح أخطاء المواقع الإلكترونية.
لا ينسخ المطوّرون عادةً الرمز البرمجي الذي يعثرون عليه في مكان ما على الويب، ولا يلصقونه في DevTools وينفّذونه بدون إلقاء نظرة سريعة أولاً على ما يفعله الرمز البرمجي. يدرك معظم المطوّرين جيدًا المخاطر الأمنية التي تنتج عن تنفيذ رمز عثروا عليه في موقع إلكتروني غير معروف.
تثق أدوات مطوري البرامج في Chrome بالمطوّرين لمعرفة ما يفعلونه. لا نريد إبطاء عملهم أو تشتيتهم بأي شكل من الأشكال عند نسخ الرموز ولصقها.
نعتقد أنّ غير المطوّرين أكثر عرضة لخطر الوقوع ضحية هجوم XSS ذاتي. لحماية المستخدمين، نرى أنّه من المقبول والمفيد المقاطعة عند تنفيذ إجراءات قد تكون خطيرة. عندما ترصد "أدوات مطوري البرامج في Chrome" أنّ مستخدمًا غير متمرس يحاول لصق رمز في "أدوات مطوري البرامج"، ستتوقف الأداة عن العمل وتعرض تحذيرًا.
متى ستعرض أدوات المطوّرين تحذيرات XSS ذاتيًا؟
تستخدِم "أدوات المطوّرين" طريقة استقرائية بسيطة جدًا لتحديد ما إذا كان سيتم عرض تحذيرات XSS ذاتيًا، وذلك استنادًا إلى سجلّ وحدة التحكّم في الملف الشخصي للمستخدم.
إذا كان ملفك الشخصي يتضمّن 5 إدخالات على الأقل في سجلّ وحدة التحكّم، لن تزعجك أدوات المطوّرين بأي تحذيرات أو نافذة منبثقة. سجلّ وحدة التحكّم هو قائمة الأوامر التي كتبتها ونفّذتها في وحدة التحكّم. في ما يلي الأوامر التي تظهر لك عند وضع المؤشر في وحدة التحكّم والضغط على مفتاح السهم المتّجه للأعلى بشكل متكرّر.
كيف تبدو تحذيرات XSS الذاتية؟
عندما يحاول مستخدم غير متمرس لصق رمز في وحدة التحكّم، يتم حظر هذا الإجراء وتعرض وحدة التحكّم تحذيرًا بدلاً من ذلك.
يمكنك إلغاء هذا التحذير وتفعيل اللصق، ولكن عليك كتابة "السماح باللصق" لإجراء ذلك.
عندما يلصق مستخدم غير متمرس رمزًا في محرِّر الرموز البرمجية في "أدوات المطوّرين" (على سبيل المثال، لوحة المصادر)، تكون تجربة المستخدم متشابهة جدًا. بدلاً من التحذير، سيظهر لك مربّع حوار مشروط.
تجدر الإشارة إلى أنّ إغلاق مربّع الحوار هذا وحده لا يكفي لتفعيل ميزة اللصق. لإلغاء التحذير، عليك كتابة "السماح باللصق" في حقل الإدخال.
هل هذا الإعداد لمرة واحدة؟
نعم، بعد أن تقرر السماح باللصق، لن تتلقّى بعد ذلك أي تحذيرات من هجمات XSS ذاتية التنفيذ.
نأمل أن يحقق ذلك توازنًا جيدًا بين مدى الفائدة والإزعاج. من خلال إضافة هذه الإجراءات، نزيد من احتمالية قراءة التحذير، وبالتالي نحدّ من احتمالية نجاح هجوم XSS ذاتي.
تحتفظ "أدوات مطوّري البرامج في Chrome" بعلامة تحدّد ما إذا كان سيتم عرض تحذيرات XSS ذاتية في ملفك الشخصي على Chrome أم لا. لذلك، إذا أنشأت ملفًا شخصيًا جديدًا وبدأت على الفور في لصق الرمز في DevTools، سيتم حظر اللصق وسيتم عرض تحذيرات XSS ذاتية بدلاً من ذلك.
هل يمكنك إيقافه للتشغيل الآلي للاختبار؟
ماذا عن الاختبارات المبرمَجة؟ تُنشئ العديد من أدوات الاختبار ملفًا شخصيًا مؤقتًا جديدًا لكل عملية اختبار. لذلك، إذا كنت تستخدِم أدوات مطوري البرامج لتصحيح أخطاء اختباراتك المبرمَجة، يتم حظر اللصق في وحدة التحكّم في البداية.
لحلّ هذه المشكلة، يمكنك تنفيذ أي مما يلي:
استخدِم Chrome for Testing، وهو إصدار مخصّص من Chrome مصمّم خصيصًا للاختبار والتشغيل الآلي. تم إيقاف تحذيرات XSS الذاتية.
بالنسبة إلى قنوات الإصدار الأخرى من Chrome، يمكنك ضبط العلامة
--unsafely-disable-devtools-self-xss-warnings
سطر الأوامر في Chrome لإيقاف مربّع حوار التحذير من هجمات XSS ذاتية التنفيذ بالكامل.
الخاتمة
ما رأيك بهذه الاستراتيجية للحدّ من هجمات XSS الذاتية؟ إذا كانت لديك تعليقات أو اقتراحات، يُرجى إضافة تعليق على هذا الخطأ أو التواصل معنا باستخدام إحدى الطرق التالية.
نريد أن نتحدّث معك عن مواءمة جهودنا أو قياس تأثير تدابير الحدّ من هجمات XSS الذاتية، خاصةً إذا كنت تعمل على موقع إلكتروني يحذّر من هجمات XSS الذاتية من خلال سجلّات وحدة التحكّم.
تنزيل قنوات المعاينة
ننصحك باستخدام إصدار Canary أو Dev أو الإصدار التجريبي من Chrome كمتصفّح التطوير التلقائي. تتيح لك قنوات المعاينة هذه الوصول إلى أحدث ميزات DevTools، وتتيح لك اختبار واجهات برمجة تطبيقات منصات الويب المتطوّرة، وتساعدك في العثور على المشاكل في موقعك الإلكتروني قبل أن يعثر عليها المستخدمون.
التواصل مع فريق "أدوات مطوّري البرامج في Chrome"
استخدِم الخيارات التالية لمناقشة الميزات الجديدة أو التحديثات أو أي شيء آخر مرتبط بـ "أدوات مطوّري البرامج".
- يمكنك إرسال الملاحظات وطلبات الميزات إلينا على crbug.com.
- يمكنك الإبلاغ عن مشكلة في "أدوات مطوّري البرامج" باستخدام رمز خيارات إضافية > مساعدة > الإبلاغ عن مشكلة في "أدوات مطوّري البرامج" في "أدوات مطوّري البرامج".
- يمكنك نشر تغريدة على Twitter على @ChromeDevTools.
- يمكنك إضافة تعليقات على فيديوهات YouTube حول الميزات الجديدة في "أدوات مطوّري البرامج" أو فيديوهات YouTube حول نصائح حول "أدوات مطوّري البرامج".