
حماية CSRF: لماذا تحتاج العمليات الحساسة تحققًا إضافيًا؟
وجود جلسة مستخدم لا يعني أن كل طلب مرتبط بها جاء من واجهة يثق بها. حماية CSRF تساعد في العمليات التي تعتمد على بيانات جلسة يرسلها المتصفح تلقائيًا، مثل…
وجود جلسة مستخدم لا يعني أن كل طلب مرتبط بها جاء من واجهة يثق بها. حماية CSRF تساعد في العمليات التي تعتمد على بيانات جلسة يرسلها المتصفح تلقائيًا، مثل تغيير إعداد أو تسجيل إجراء إداري.
حدد العمليات المؤثرة
لا تجعل تغيير الحالة أو حذف سجل يحدث عبر رابط قراءة بسيط. ضع تحققًا مناسبًا للطلب، ومنها رمز CSRF يرتبط بالسياق وتتحقق منه الخدمة. راجع إعدادات الكوكيز وخصائصها ضمن الحماية، دون الاعتماد على طبقة واحدة لجميع الحالات.
افصل الحماية عن الصلاحية
رمز صحيح لا يمنح صاحب الحساب حق تعديل كل الطلبات. بعد التحقق من مصدر الطلب، افحص الدور وملكية السجل والمدخلات. كذلك لا تمنع CSRF وحدها تكرار العملية المالية؛ تحتاج تلك العملية تصميمًا مستقلًا لمنع التكرار.
مثال اختبار
في بيئة التجربة، أرسل العملية دون الرمز أو برمز غير صحيح وتأكد من عدم تغير البيانات. جرب رمزًا صالحًا بحساب لا يملك صلاحية السجل. راجع رسالة الخطأ حتى يستطيع المستخدم إعادة تحميل النموذج بأمان عند انتهاء صلاحيته.
- استخدم طلبات قراءة لقراءة البيانات فقط.
- راجع جميع مسارات تنفيذ الإجراء.
- لا تضع رمزًا سريًا في رابط قد يظهر في السجلات.
- اختبر النوافذ المنبثقة والنماذج الفرعية أيضًا.
تشرح إرشادات منع CSRF في OWASP الخيارات وحدودها. اربط الحماية بطريقة استخدام الجلسات في تطبيقك بدل نسخ إعداد غير مفهوم.

▢ التعليقات (0)