تكرار السؤال: …
الإجابة المختصرة
تحدث عندما يجبر موقع خبيث متصفح الضحية على إرسال طلب غير مصرح به لموقعك مع الكوكيز الخاصة به؛ وتتم الحماية برمز CSRF Token المزدوج وخاصية SameSite=Lax/Strict.
الشرح
إذا كان موقعك يعتمد على الكوكيز للمصادقة التلقائية، يمكن لصفحة خارجية إرسال نموذج POST لحساب المستخدم. الحل الحديث هو تعيين خاصية SameSite=Lax أو Strict على الكوكيز الحساسة لمنع المتصفح من إرفاقها مع طلبات المواقع الخارجية، بالإضافة لتطبيق نمط Double Submit Cookie أو Synchronizer Token Pattern للطلبات المعدلة للحالة.
مثال بالكود
// ضبط SameSite على الكوكيز لحماية فورية
res.cookie("session", id, { sameSite: "lax", httpOnly: true, secure: true });أخطاء شائعة
- الاعتماد على SameSite=None دون تطبيق تحقق يدوي من الـ CSRF Tokens.