كيفية كتابة رمز آمن؟

حماية نفسك من البرمجة النصية للمواقع المشتركة!

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

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

دعنا نحفر!

لذلك ، تركز هذه المقالة المعينة "كيفية كتابة التعليمات البرمجية الآمنة؟" على مسألة البرمجة النصية عبر المواقع.

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

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

String firstNameParameter = (String) request.getParameter ("firstName")؛

يتم تخزين القيمة التي أدخلها المستخدم على الفور في المتغير المحلي firstNameParameter ثم يتم إرسال القيمة إلى المستعرض في استجابة HTTP دون أي تشفير الإخراج.

في هذه المقالة ، سأخضع لأنواع قليلة من الهجمات والطرق المختلفة ، تلك التي تواجهها يوميًا والأساليب التي يمكنك استخدامها لمنعها: -

1. يعكس XSS

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

هنا ، مثال على الحمولة الصافية التي يمكن للمهاجم في حال تنفيذها من قبل الوصول إلى التفاصيل الخاصة به.

https://mybank.com/submitForm.do؟customer=