“Security headers” هي رؤوس HTTP (HTTP headers) التي يتم إرسالها من الخادم (Server) إلى المتصفح لتعزيز أمان تطبيقات الويب. هذه الرؤوس تساعد في حماية الموقع من مجموعة من الهجمات الأمنية مثل هجمات Cross-Site Scripting (XSS) و Clickjacking و Man-in-the-Middle (MitM) وغيرها.
بعض أهم أكواد Security headers تشمل:
1- Content-Security-Policy (CSP):
يحسن الأمان عن طريق تحديد مصادر المحتوى المسموح بها للموقع (مثل الصور، النصوص، السكربتات) ومنع تحميل المحتوى من مصادر غير موثوقة.
يمنع الهجمات مثل XSS عن طريق تحديد المصادر المسموح بها لتحميل المحتوى (مثل السكربتات، الصور، والأنماط).
مثال:
Content-Security-Policy: default-src 'self'; img-src 'self' https:;
2- Strict-Transport-Security (HSTS):
يفرض على المتصفح الاتصال بالموقع عبر HTTPS فقط (وليس HTTP) لضمان التشفير في جميع التفاعلات.
يجبر المتصفح على استخدام HTTPS فقط عند الاتصال بالموقع، مما يقلل من مخاطر هجمات Man-in-the-Middle (MITM).
مثال:
Strict-Transport-Security: max-age=31536000; includeSubDomains
3- X-Content-Type-Options:
يمنع المتصفح من محاولة اكتشاف نوع المحتوى بشكل تلقائي، مما يقلل من فرصة هجمات التحميل الضار للمحتوى.
يمنع المتصفح من تخمين نوع الملفات (MIME sniffing) ويضمن استخدام نوع المحتوى المحدد.
مثال:
X-Content-Type-Options: nosniff
4- X-Frame-Options:
يحدد إذا كان بإمكان الموقع أن يظهر داخل إطار (iframe) على مواقع أخرى، مما يمنع هجمات مثل Clickjacking.
يحمي من هجمات Clickjacking عن طريق التحكم في إمكانية تضمين الموقع داخل إطارات (iframes).
خيارات:
DENY
: يمنع التضمين نهائيًا.SAMEORIGIN
: يسمح بالتضمين فقط من نفس النطاق.
مثال:
X-Frame-Options: SAMEORIGIN
5- X-XSS-Protection:
يحاول منع هجمات Cross-Site Scripting (XSS) عن طريق فحص المحتوى الذي يتم تحميله والتأكد من أنه لا يحتوي على أكواد JavaScript ضارة.
يعمل كحماية ضد هجمات XSS عن طريق تعطيل أو تنشيط ميزة الحماية ضد XSS في المتصفح.
مثال:
X-XSS-Protection: 1; mode=block
6- Referrer-Policy:
يحدد كم من المعلومات (مثل URL) يجب أن يتم إرسالها مع الروابط التي توجه المستخدمين إلى صفحات أخرى.
تتحكم في كمية معلومات الإحالة (referrer) التي يتم إرسالها عند الانتقال بين الصفحات.
مثال:
Referrer-Policy: no-referrer
7- Permissions-Policy:
يسمح بالتحكم في ميزات المتصفح مثل الكاميرا أو الميكروفون التي يمكن للموقع الوصول إليها.
تتحكم في الأذونات الممنوحة للمتصفح (مثل الوصول إلى الكاميرا، الميكروفون، أو GPS).
مثال:
Permissions-Policy: geolocation=(self), microphone=()
استخدام هذه الرؤوس بشكل صحيح يساعد في تعزيز أمان الموقع بشكل كبير ويقلل من المخاطر المحتملة.
أين سيتم إضافة أكواد ال Security headers:
1- يمكن إعدادها على مستوى الخادم مثل Apache أو Nginx، أو عبر إعدادات التطبيق نفسه.
مثال لإضافتها في Nginx:
add_header Content-Security-Policy "default-src 'self'";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
add_header X-Content-Type-Options "nosniff";
add_header X-Frame-Options "SAMEORIGIN";
2- يمكن أيضا اضافتها داخل ملف .htaccess الموجود بداخل مجلد ال root لموقعك.
كيف يمكن فحص الموقع للتأكد من أنه يحتوى على أكواد ال Security headers:
يمكنك فحص الموقع للتأكد أنه يحتوى على أكواد ال Security Headers وأنه محمى ضد الاختراق عن طريق الدخول للموقع التالى وفحص الدومين الخاص بموقعك والتأكد أنه سيحصل على درجة فحص A+.

الأكواد المذكورة فى الشرح:
<IfModule mod_headers.c>
# HSTS (HTTP Strict Transport Security)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# X-Frame-Options (Prevent Clickjacking)
Header always set X-Frame-Options "SAMEORIGIN"
# X-Content-Type-Options (Prevent MIME Type Sniffing)
Header always set X-Content-Type-Options "nosniff"
# Referrer-Policy (Control Referrer Information)
Header always set Referrer-Policy "strict-origin-when-cross-origin"
# Permissions-Policy (Restrict Browser Features)
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=(), interest-cohort=()"
</IfModule>
# Redirect all HTTP to HTTPS (if not already set up)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
يمكنك أيضا تحميل ملف الأكواد من هنا