ما هي رؤوس الأمان؟
رؤوس الأمان هي رؤوس استجابة HTTP التي تعلم المتصفحات بكيفية التصرف عند التعامل مع محتوى الموقع الإلكتروني، مما يعزز الحماية من الثغرات الشائعة على الويب. تساعد هذه الرؤوس على منع الهجمات مثل النصوص البرمجية عبر المواقع (XSS) والنقر على الخادع والحقن في المحتوى والهجمات على تخفيض البروتوكول. رؤوس الأمان المكونة بشكل صحيح ضرورية لاستراتيجيات أمان الدفاع المتعدق.
رؤوس الأمان الأساسية
سياسة أمان النقل الصارم (HSTS)
فرض اتصالات HTTPS:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
- يمنع هجمات تخفيض البروتوكول
- يحجب المحتوى المختلط
- يحمي من إزالة SSL
سياسة أمان المحتوى (CSP)
تحكم تحميل الموارد:
Content-Security-Policy: default-src 'self'; script-src 'self' trusted.com; style-src 'self' 'unsafe-inline'
- يمنع هجمات XSS
- يتحكم في مصادر البرامج النصية
- يحجب الموارد غير المصرح بها
خيارات X-Frame
يمنع النقر على الخادع:
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
- يحجب الموقع من أن يكون إطار
- يحمي ضد إعادة تصميم الواجهة
خيارات نوع المحتوى X
يمنع تخمين MIME:
X-Content-Type-Options: nosniff
- يفرض احترام المتصفح لـ Content-Type المعلن
- يمنع حقن البرامج النصية من خلال الملفات المفسرة بشكل خاطئ
رؤوس الأمان الإضافية
| الرأس | الغرض | قيمة المثال |
|---|---|---|
| X-XSS-Protection | مرشح XSS قديم للحماية من النصوص البرمجية | 1; mode=block |
| Referrer-Policy | التحكم في معلومات الصفحة المُحيلة | strict-origin-when-cross-origin |
| Permissions-Policy | تقييد ميزات المتصفح مثل الموقع والكاميرا | geolocation=(), camera=() |
| Cross-Origin-Opener-Policy | عزل عمليات النوافذ بين المصادر | same-origin |
| Cross-Origin-Embedder-Policy | عزل الموارد المضمّنة بين المصادر | require-corp |
أمثلة التنفيذ
تكوين Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'self'" always;
تكوين Apache
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
رؤوس الأمان وصحة النطاق
لماذا تهم الرؤوس للنطاقات
- حماية المستخدمين الذين يزورون نطاقك
- منع ضرر سمعة النطاق
- تلبية متطلبات الامتثال
- الدفاع ضد الهجمات الشائعة
اختبار رؤوس الأمان
أدوات للتحقق من التنفيذ:
- securityheaders.com، خدمة لفحص رؤوس الأمان
- Mozilla Observatory، أداة لتقييم إعدادات الأمان
- SSL Labs، خدمة لتحليل شهادات SSL/TLS
- تبويب Network في Chrome DevTools، لمراجعة الرؤوس أثناء الطلب
أفضل الممارسات
1. ابدأ بـ HSTS: ضروري لفرض HTTPS
2. تنفيذ CSP تدريجياً: ابدأ بنمط التقارير فقط
3. اختبر بدقة: يمكن أن تكسر الرؤوس الوظائف
4. استخدم قوائم المراجعة المسبقة: أرسل إلى قوائم المراجعة المسبقة للمتصفح
5. مراقبة الانتهاكات: استخدم نقاط نهاية إعداد التقارير
6. تدقيق منتظم: تتطور متطلبات الأمان
معايير الدرجات الشائعة
| الدرجة | المتطلبات النموذجية |
|---|---|
| A+ | جميع الرؤوس الحرجة، HSTS preload |
| A | HSTS, CSP, X-Frame-Options, X-Content-Type |
| B | بعض الرؤوس مفقودة |
| C/D | رؤوس أمان الحد الأدنى |
| F | لا توجد رؤوس أمان |
تمثل رؤوس الأمان طبقة حرجة من أمان تطبيقات الويب، مما يوفر حماية مفروضة من المتصفح تكمل تدابير الأمان من جانب الخادم.