📚 محتوى دفاعي بحت.
ما هي CSRF؟
Cross-Site Request Forgery: خداع متصفّح المستخدم المسجّل لإرسال طلب غير مقصود لموقع يثق به (مثل تغيير بريد أو تحويل) — مستغلًّا أن المتصفّح يرسل ملفّات الجلسة تلقائيًّا.
الحلّ 1: رمز CSRF
يولّد الخادم رمزًا فريدًا لكل جلسة/نموذج، ويتحقّق منه عند الإرسال. المهاجم لا يعرف الرمز.
<form method="post">
<input type="hidden" name="csrf_token" value="...">
</form>
معظم الأطر توفّره: {% csrf_token %} (Django)، حماية مدمجة في Laravel و Rails.
الحلّ 2: SameSite Cookies
تمنع إرسال ملفّ الجلسة مع طلبات من مواقع أخرى:
Set-Cookie: session=...; SameSite=Strict; Secure; HttpOnly
الحلّ 3: تحقّق من المصدر
افحص ترويسات Origin / Referer للطلبات الحسّاسة.
مبادئ
- استخدم طرق HTTP الصحيحة (لا تغيّر بيانات عبر GET).
- فعّل حماية CSRF المدمجة في إطارك.
💡 معظم الأطر الحديثة تحمي من CSRF تلقائيًّا — لا تعطّل هذه الحماية.
🎯 التالي: البرمجة الآمنة.