انتقل إلى محتوى الدرس

How CSRF Exploits Active Sessions كيف تستغل هجمات CSRF الجلسات النشطة

احمِ النماذج والعمليات الحساسة من هجمات تزوير الطلبات عبر المواقع CSRF باستخدام random_bytes والمقارنة الثابتة زمنياً hash_equals.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تعتمد هجمات تزوير الطلبات عبر المواقع (CSRF) على خداع متصفح المستخدم المسجل دخوله لإرسال طلب تغييري غير مقصود (كتغيير البريد أو تحويل رصيد) إلى تطبيق PHP الخاص بك.

  • ترفق المتصفحات كوكيز الجلسة (PHPSESSID) تلقائياً مع الطلبات المرسلة للموقع ما لم تُضبط طبقات الحماية.
  • بدون توكن مزامنة سري مرتبط بالجلسة، لا يستطيع خادم PHP التفرقة بين نموذج أرسله المستخدم بإرادته ونموذج مخفي أُرسل من موقع خارجي.
  • لا تنفذ أبداً أي عمليات تغيير بيانات (إضافة أو تعديل أو حذف أو خروج) عبر طلبات GET.

يُعد فرض طريقة POST الشرط الأول للحماية من CSRF، لأن روابط GET يمكن تشغيلها بمجرد وضعها داخل وسم صورة <img src="...">.

مخطط توضيحي: محاكي التحقق من توكن الحماية CSRF في PHP
PHP
<?php
$method = "GET";
$action = "delete_account";

// NEVER allow state-changing actions via GET!
if ($method !== "POST") {
    http_response_code(405);
    echo "405 Method Not Allowed: Use POST for $action\n";
}