تكرار السؤال: …
الإجابة المختصرة
تولد رمزي تحقق (واحد في كوكي مشفر والآخر في حقل مخفي بالنموذج)؛ وهي غير ضرورية لواجهات الـ REST API التي تعتمد حصراً على ترويسة Authorization: Bearer ولا تستخدم الكوكيز.
الشرح
هجوم CSRF يستغل إرسال المتصفح للكوكيز تلقائياً مع طلبات المواقع الخارجية. تقوم سمة [ValidateAntiForgeryToken] أو [AutoValidateAntiforgeryToken] بفحص تطابق رمز الكوكي مع الرمز المرسل في الطلب. في واجهات الـ API الصرفة حيث يخزن العميل التوكن في الذاكرة ويرسله يدوياً في ترويسة Authorization، لا يمتلك المتصفح أي آلية لإرفاقه تلقائياً، وبالتالي تسقط مخاطر الـ CSRF تماماً.
مثال بالكود
// في تطبيقات Blazor / MVC
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult UpdateProfile(ProfileDto dto) { ... }أخطاء شائعة
- تعطيل حماية الـ Antiforgery في نماذج MVC وتطبيقات الـ Razor Pages دون فهم المخاطر.