ما هي البرمجة النصية عبر المواقع ؟ cross site scripting
cross site scripting
ستجد فى هذا المقال
ما هي الـبـرمـجـة النـصـيـة عبر المواقع؟
يخدع هجوم البرمجة النصية عبر المواقع متصفح الويب لتشغيل تعليمات برمجية ضارة.
ما هي البـرمـجـة النـصـيـة عبر المواقع؟
البرمجة النصية عبر المواقع (XSS) هي استغلال حيث يقوم المهاجم بإرفاق رمز على موقع ويب شرعي سيتم تنفيذه عندما تقوم الضحية بتحميل موقع الويب. يمكن إدخال هذا الرمز الخبيث بعدة طرق. الأكثر شيوعًا ، إما أن تتم إضافته إلى نهاية عنوان url أو نشره مباشرة على صفحة تعرض محتوى من إنشاء المستخدم. من الناحية الفنية ، تعد البرمجة النصية عبر المواقع هجومًا لحقن التعليمات البرمجية من جانب العميل.
ما هو الكود من جانب العميل؟
رمز جانب العميل هو رمز JavaScript يتم تشغيله على جهاز المستخدم.
فيما يتعلق بالمواقع الإلكترونية ، عادةً ما تكون الشفرة من جانب العميل عبارة عن رمز يتم تنفيذه بواسطة مستعرض الويب بعد أن يقوم المتصفح بتحميل صفحة ويب.
هذا على عكس التعليمات البرمجية من جانب الخادم ، والتي يتم تنفيذها على خادم الويب الخاص بالمضيف . الكود من جانب العميل مفيد جدًا مع صفحات الويب التفاعلية ؛ يعمل المحتوى التفاعلي بشكل أسرع وأكثر موثوقية نظرًا لأن كمبيوتر المستخدم لا يحتاج إلى الاتصال بخادم الويب في كل مرة يكون هناك تفاعل.
تعد الألعاب المستندة إلى المستعرض أحد الأنظمة الأساسية الشائعة للرمز من جانب العميل ،
حيث يمكن أن يضمن رمز جانب العميل تشغيل اللعبة بسلاسة بغض النظر عن مشكلات الاتصال.
الكود الذي يدير جانب العميل شائع جدًا في تطوير الويب الحديث ويتم استخدامه في معظم مواقع الويب الحديثة. نظرًا لأن التعليمات البرمجية عبر المواقع هي عنصر أساسي في شبكة الويب الحديثة ،
فقد أصبحت البرمجة النصية عبر المواقع واحدة من أكثر الثغرات الأمنية السيبرانية التي يتم الإبلاغ عنها بشكل متكرر ،
وقد ضربت هجمات الـبـرمجـة النـصـيـة عبر المواقع مواقع رئيسية مثل YouTube و Facebook و Twitter.
ما هو مثال على الـبـرمـجـة النصـيـة عبر المواقع؟
من الأمثلة المفيدة على هجمات البرمجة النصية عبر المواقع بشكل شائع على مواقع الويب التي تحتوي على منتديات تعليق لم يتم التحقق من صحتها. في هذه الحالة ، سينشر المهاجم تعليقًا يتكون من تعليمات برمجية قابلة للتنفيذ ملفوفة في علامات “<script> </script>”. تخبر هذه العلامات متصفح الويب أن يفسر كل شيء بين العلامات على أنه كود JavaScript.
بمجرد أن يكون هذا التعليق على الصفحة ، عندما يقوم أي مستخدم آخر بتحميل هذا الموقع ،
سيتم تنفيذ التعليمات البرمجية الضارة بين علامات البرنامج النصي بواسطة مستعرض الويب الخاص بهم ، وسيصبحون ضحية للهجوم.
أيضا :
كيف يمكن للمهاجم استخدام البـرمـجـة النـصـيـة عبر المواقع لإحداث ضرر؟
تعد هجمات البرمجة النصية عبر المواقع عبر JavaScript شائعة لأن JavaScript لديها إمكانية الوصول
إلى بعض البيانات الحساسة التي يمكن استخدامها لسرقة الهوية والأغراض الضارة الأخرى.
على سبيل المثال ، لدى JavaScript إمكانية الوصول إلى ملفات تعريف الارتباط * ، ويمكن للمهاجم استخدام هجوم XSShttps://owasp.org/www-community/attacks/xss/ لسرقة ملفات تعريف الارتباط الخاصة بالمستخدم وانتحال شخصيته عبر الإنترنت. يمكن لـ JavaScript أيضًا إنشاء طلبات HTTP ، والتي يمكن استخدامها لإرسال البيانات (مثل ملفات تعريف الارتباط المسروقة) إلى المهاجم.
بالإضافة إلى ذلك ، يمكن أن تساعد JavaScript من جانب العميل المهاجم في الوصول إلى واجهات برمجة التطبيقات التي تحتوي على إحداثيات الموقع الجغرافي وبيانات كاميرا الويب وغيرها من المعلومات الحساسة.
أيضا :
يكون تدفق هجوم البرمجة النصية عبر المواقع كما يلي:
- يقوم الضحية بتحميل صفحة ويب وتقوم الشفرة الضارة بنسخ ملفات تعريف الارتباط الخاصة بالمستخدم
- ثم يرسل الرمز طلب HTTP إلى خادم الويب الخاص بالمهاجم مع ملفات تعريف الارتباط المسروقة في نص الطلب.
- يمكن للمهاجم بعد ذلك استخدام ملفات تعريف الارتباط هذه لانتحال شخصية المستخدم على موقع الويب هذا بغرض هجوم الهندسة الاجتماعية أو حتى الوصول إلى أرقام الحسابات المصرفية أو البيانات الحساسة الأخرى.
* ملفات تعريف الارتباط هي بيانات اعتماد مؤقتة لتسجيل الدخول محفوظة على كمبيوتر المستخدم.
على سبيل المثال ،
عندما يقوم المستخدم بتسجيل الدخول إلى موقع مثل Facebook ، يمنحه الموقع ملف تعريف ارتباط بحيث إذا أغلق نافذة المتصفح وعاد إلى Facebook في وقت لاحق من ذلك اليوم ،
فسيتم مصادقته تلقائيًا بواسطة ملف تعريف الارتباط ولن يحتاج إلى تسجيل الدخول مرة أخرى .
كذلك :
ما هي الأنواع المختلفة من البـرمجة النـصـية عبر المواقع؟
ينعكس النوعان الأكثر شيوعًا من هجمات البرمجة النصية عبر المواقع على البرمجة النصية عبر المواقع والبرامج النصية المستمرة عبر المواقع.
ينعكس البـرمجة النـصيـة عبر المواقع
هذا هو هجوم البرمجة النصية عبر المواقع الأكثر شيوعًا. من خلال الهجوم المنعكس ، تتم إضافة التعليمات البرمجية الضارة إلى نهاية عنوان url الخاص بالموقع ؛ غالبًا ما يكون هذا موقعًا شرعيًا وموثوقًا به. عندما تقوم الضحية بتحميل هذا الرابط في متصفح الويب الخاص بهم ، سيقوم المتصفح بتنفيذ الشفرة التي تم إدخالها في عنوان url. يستخدم المهاجم عادةً شكلاً من أشكال الهندسة الاجتماعية لخداع الضحية للنقر على الرابط.
على سبيل المثال ، قد يتلقى المستخدم رسالة بريد إلكتروني تبدو شرعية تدعي أنها واردة من البنك الذي يتعامل معه. سيطلب البريد الإلكتروني منهم اتخاذ بعض الإجراءات على موقع البنك الإلكتروني ، وتقديم رابط. قد يبدو الرابط في نهاية المطاف شيئًا كالتالي:
http://legitamite-bank.com/index.php?user=<script>here is some bad code!</script>
على الرغم من أن الجزء الأول من عنوان url يبدو آمنًا ويحتوي على مجال موقع ويب موثوق به ، إلا أن الشفرة التي يتم إدخالها في نهاية عنوان url يمكن أن تكون ضارة.
الـبـرمجـة النصـيـة المستمرة عبر المواقع
يحدث هذا في المواقع التي تتيح للمستخدمين نشر محتوى يراه المستخدمون الآخرون ، مثل منتدى التعليقات أو موقع الوسائط الاجتماعية ، على سبيل المثال. إذا لم يتحقق الموقع بشكل صحيح من صحة المدخلات الخاصة بالمحتوى الذي ينشئه المستخدم ، فيمكن للمهاجم إدخال رمز ستنفذه متصفحات المستخدمين الآخرين عند تحميل الصفحة. على سبيل المثال ، قد ينتقل المهاجم إلى موقع مواعدة عبر الإنترنت ، وقد يضع شيئًا كهذا في ملفه الشخصي:
"Hi! My name is Dave, I enjoy long walks on the beach and <script>malicious code here</script>"
أي مستخدم يحاول الوصول إلى ملف تعريف Dave سيصبح ضحية لهجوم Dave المستمر على البرمجة النصية عبر المواقع.
كيفية منع البـرمـجـة النـصـية عبر المواقع
لا توجد استراتيجية واحدة للتخفيف من البرمجة النصية عبر المواقع ، وتتطلب الأنواع المختلفة من تطبيقات الويب مستويات مختلفة من الحماية.
يمكن اتخاذ عدد من التدابير الوقائية ، فيما يلي سنوجز عددًا قليلاً منها.
إن أمكن ، تجنب HTML في المدخلات – إحدى الطرق الفعالة للغاية لتجنب هجمات البرمجة النصية المستمرة عبر المواقع هي منع المستخدمين من نشر HTML في مدخلات النموذج.
هناك خيارات أخرى تتيح للمستخدمين إنشاء محتوى ثري دون استخدام HTML ، مثل markdown ومحررات WYSIWYG.
التحقق من صحة المدخلات – يعني التحقق من الصحة تنفيذ القواعد التي تمنع المستخدم من نشر البيانات في نموذج لا يلبي معايير معينة.
على سبيل المثال ، يجب أن يحتوي الإدخال الذي يطلب “اسم العائلة” الخاص بالمستخدم على قواعد تحقق تسمح فقط للمستخدم بإرسال البيانات التي تتكون من أحرف أبجدية رقمية.
يمكن أيضًا تعيين قواعد التحقق من الصحة لرفض أي علامات أو أحرف شائعة الاستخدام في البرمـجة النصـية عبر المواقع ، مثل علامات “<script>”.
تعقيم البيانات – يشبه تعقيم البيانات التحقق من الصحة ، ولكنه يحدث بعد نشر البيانات بالفعل على خادم الويب ، ومع ذلك لا يزال قبل عرضها على مستخدم آخر. هناك العديد من الأدوات عبر الإنترنت التي يمكنها تعقيم HTML وتصفية أي حقن تعليمات برمجية ضارة.
اتخاذ إجراءات أمان ملفات تعريف الارتباط – يمكن لتطبيقات الويب أيضًا وضع قواعد خاصة للتعامل مع ملفات تعريف الارتباط الخاصة بها والتي يمكن أن تخفف من سرقة ملفات تعريف الارتباط عبر هجمات البرمجة النصية عبر المواقع. يمكن ربط ملفات تعريف الارتباط بعناوين IP معينة بحيث لا يتمكن مهاجمو البرمجة النصية عبر المواقع من الوصول إليها. بالإضافة إلى ذلك ، يمكن إنشاء قواعد لمنع JavaScript من الوصول إلى ملفات تعريف الارتباط تمامًا.
إعداد قواعد WAF – يمكن أيضًا تكوين WAF لفرض القواعد التي ستمنع البرمجـة النصـيـة عبر المواقع المنعكسة. تستخدم قواعد WAF هذه استراتيجيات من شأنها حظر الطلبات الغريبة على الخادم ، بما في ذلك هجمات البرمجة النصية عبر المواقع.
والى هنا ياصديقى نكون قد أتممنا المهمة بنجاح
مع تحيات فريق #Ezznology
وتجد مايهمك على #متجرنا
وللإشتراك فى نشرتنا الإخبارية على اخبار جوجل اضغط هنا👇👇
او قم بمسح الكود