CSRF أو Cross-Site Request Forgery عبارة عن ثغرة أمنية في موقع الويب حيث يمكن للمهاجم أن يتسبب في حدوث إجراء في جلسة الضحية على موقع ويب آخر. من الأشياء التي تجعل CSRF كبيرة جدًا أنها لا تتطلب حتى تفاعل المستخدم ، كل ما هو مطلوب هو أن تعرض الضحية صفحة ويب بها الاستغلال.
نصيحة: يُنطق CSRF عمومًا إما حرفًا بحرف أو باسم "أمواج البحر".
كيف يعمل هجوم CSRF؟
يتضمن الهجوم قيام المهاجم بإنشاء موقع ويب لديه طريقة لتقديم طلب على موقع ويب آخر. قد يتطلب هذا تفاعل المستخدم ، مثل حمله على الضغط على زر ، ولكنه قد يكون أيضًا غير تفاعلي. في JavaScript ، توجد طرق للتسبب في حدوث الإجراء تلقائيًا. على سبيل المثال ، لن تكون الصورة صفر × صفر بكسل مرئية للمستخدم ولكن يمكن تهيئتها بحيث يقدم "src" طلبًا إلى موقع ويب آخر.
JavaScript هي لغة من جانب العميل ، وهذا يعني أن كود JavaScript يتم تشغيله في المتصفح بدلاً من خادم الويب. بفضل هذه الحقيقة ، فإن الكمبيوتر الذي يقدم طلب CSRF هو في الواقع كمبيوتر الضحية. لسوء الحظ ، هذا يعني أن الطلب تم إجراؤه بجميع الأذونات التي يمتلكها المستخدم. بمجرد أن يخدع موقع الويب المهاجم الضحية لتقديم طلب CSRF ، لا يمكن تمييز الطلب بشكل أساسي عن المستخدم الذي يقوم بالطلب بشكل طبيعي.
CSRF هو مثال على "هجوم نائب مرتبك" ضد متصفح الويب حيث يتم خداع المتصفح لاستخدام أذوناته من قبل مهاجم بدون هذه الامتيازات. هذه الأذونات هي جلستك ورموز المصادقة الخاصة بك إلى موقع الويب المستهدف. يقوم متصفحك تلقائيًا بتضمين هذه التفاصيل في أي طلب يقدمه.
هجمات CSRF معقدة نوعًا ما. بادئ ذي بدء ، يحتاج موقع الويب المستهدف إلى نموذج أو عنوان URL له آثار جانبية مثل حذف حسابك. يحتاج المهاجم بعد ذلك إلى صياغة طلب لتنفيذ الإجراء المطلوب. أخيرًا ، يحتاج المهاجم إلى حمل الضحية على تحميل صفحة ويب بها الثغرة أثناء تسجيل دخولهم إلى موقع الويب المستهدف.
لمنع مشكلات CSRF ، فإن أفضل ما يمكنك فعله هو تضمين رمز CSRF المميز. رمز CSRF هو عبارة عن سلسلة يتم إنشاؤها عشوائيًا يتم تعيينها على أنها ملف تعريف ارتباط ، ويجب تضمين القيمة مع كل استجابة جنبًا إلى جنب مع رأس طلب يتضمن القيمة. بينما يمكن أن يشتمل هجوم CSRF على ملف تعريف الارتباط ، فإنه لا يمكن تحديد قيمة رمز CSRF المميز لتعيين الرأس وبالتالي سيتم رفض الهجوم.