رؤوس الأمان التي يجب أن يرسلها كل موقع

Security2026-09-19TryQuickToolBox

لقد قمت بتأمين خادمك، وتحديث إطار العمل الخاص بك، وتدريب فريقك على البرمجة الآمنة. ومع ذلك، يظل موقعك عرضة للخطر إذا لم يرسل رؤوس أمان HTTP الصحيحة. تخبر رؤوس الاستجابة هذه المتصفحات بكيفية التصرف عند التعامل مع المحتوى الخاص بك، وترك الرؤوس مفقودة أو غير مهيأة يفتح الباب أمام هجمات البرمجة النصية عبر المواقع (XSS)، والنقر الخفي، وهجمات تخفيض البروتوكول، وتسريب البيانات.

في هذا الدليل، سنغطي رؤوس الأمان الأساسية التي يجب أن يرسلها كل موقع، ونشرح وظيفة كل منها، ونوضح لك كيفية تكوينها بشكل صحيح.

لماذا تهم رؤوس الأمان

رؤوس الأمان هي خط الدفاع الأول لأنها تفرض سياسات على مستوى المتصفح تتحكم فيها أنت. إنها لا تحل محل التحقق من المدخلات أو المصادقة الآمنة، لكنها تقلل بشكل كبير من سطح الهجوم. على سبيل المثال، يمكن لسياسة أمان المحتوى الصارمة (CSP) أن تمنع تنفيذ برنامج نصي مُدخل، حتى لو وجد المهاجم ثغرة XSS.

تدعم المتصفحات الرئيسية هذه الرؤوس بشكل متسق، وإضافتها عادة ما تكون بضعة أسطر من التكوين. لا يوجد سبب يذكر لعدم استخدامها.

رؤوس الأمان الأساسية

فيما يلي الرؤوس التي يجب أن يرسلها كل موقع إنتاجي. سنغطي وظائفها، والقيم الموصى بها، والمزالق الشائعة.

1. سياسة أمان المحتوى (CSP)

CSP هو الرأس الأكثر قوة للتخفيف من XSS وحقن البيانات. يحد من المصادر التي يمكن للمتصفح تحميل البرامج النصية والأنماط والصور والموارد الأخرى منها. قد تبدو سياسة البداية الجيدة كما يلي:

Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://images.example.com; object-src 'none'; base-uri 'self'; form-action 'self';

ابدأ بـ default-src 'self' وأضف الاستثناءات تدريجيًا حسب الحاجة. تجنب 'unsafe-inline' للبرامج النصية إن أمكن؛ استخدم nonces أو hashes بدلاً من ذلك. اختبر بدقة لأن CSP غير المهيأة بشكل صحيح يمكن أن تعطل موقعك.

2. أمان النقل الصارم (HSTS)

يجبر HSTS المتصفحات على استخدام HTTPS لجميع الطلبات المستقبلية إلى نطاقك. يمنع هجمات تخفيض البروتوكول واختطاف ملفات تعريف الارتباط. رأس نموذجي:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

max-age بالثواني (سنة واحدة). includeSubDomains يطبق السياسة على جميع النطاقات الفرعية. preload يسمح بإضافة نطاقك إلى قوائم التحميل المسبق للمتصفح، لكن استخدمه فقط إذا كنت متأكدًا تمامًا من أن جميع النطاقات الفرعية تدعم HTTPS.

3. X-Frame-Options

يمنع هذا الرأس موقعك من التضمين في إطار iframe، مما يوقف هجمات النقر الخفي. استخدم:

X-Frame-Options: DENY

أو SAMEORIGIN إذا كنت بحاجة إلى تأطير المحتوى الخاص بك. تدعم المتصفحات الحديثة أيضًا توجيه frame-ancestors في CSP، وهو أكثر مرونة. إذا كنت تستخدم CSP، يمكنك حذف X-Frame-Options، لكن تضمين كليهما يوفر توافقًا أفضل.

4. X-Content-Type-Options

يمنع هذا الرأس المتصفحات من استنشاق MIME لاستجابة بعيدًا عن Content-Type المعلن. إنه بسيط وفعال:

X-Content-Type-Options: nosniff

بدونه، قد يتم تفسير ملف ضار كبرنامج نصي قابل للتنفيذ. قم دائمًا بتعيينه.

5. Referrer-Policy

تتحكم Referrer-Policy في مقدار معلومات المرجع المرسلة مع الطلبات. إعداد افتراضي متوازن:

Referrer-Policy: strict-origin-when-cross-origin

يرسل هذا عنوان URL الكامل للطلبات من نفس الأصل وفقط الأصل للطلبات عبر الأصول. يقلل من تسريب معلومات المسار الحساسة مع الحفاظ على التحليلات.

6. Permissions-Policy

المعروف سابقًا باسم Feature-Policy، يتيح لك هذا الرأس تمكين أو تعطيل ميزات المتصفح مثل تحديد الموقع والكاميرا والميكروفون. مثال:

Permissions-Policy: geolocation=(), camera=(), microphone=()

تعطيل الميزات غير المستخدمة يقلل من تأثير البرامج النصية الخارجية المخترقة.

مقارنة رؤوس الأمان

الرأسالغرضالقيمة الموصى بها
Content-Security-Policyتخفيف XSS وحقن البياناتdefault-src 'self'; script-src 'self' ...
Strict-Transport-Securityفرض HTTPSmax-age=31536000; includeSubDomains
X-Frame-Optionsمنع النقر الخفيDENY أو SAMEORIGIN
X-Content-Type-Optionsإيقاف استنشاق MIMEnosniff
Referrer-Policyالتحكم في تسريب المرجعstrict-origin-when-cross-origin
Permissions-Policyتقييد ميزات المتصفحgeolocation=(), camera=()

كيفية إضافة رؤوس الأمان

تعتمد الطريقة على خادم الويب أو إطار العمل الخاص بك. فيما يلي الأساليب الشائعة.

Nginx

أضف الرؤوس في كتلة الخادم الخاصة بك:

add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://images.example.com; object-src 'none'; base-uri 'self'; form-action 'self';" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), camera=(), microphone=()" always;

تضمن المعلمة always إرسال الرؤوس حتى في استجابات الخطأ.

Apache

قم بتمكين mod_headers وأضف:

Header always set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://images.example.com; object-src 'none'; base-uri 'self'; form-action 'self';"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Frame-Options "DENY"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(), camera=(), microphone=()"

Node.js (Express)

استخدم الوسيط helmet، الذي يعين العديد من الرؤوس افتراضيًا:

const helmet = require('helmet');
app.use(helmet());
// Customize CSP if needed
app.use(helmet.contentSecurityPolicy({
  directives: {
    defaultSrc: ["'self'"],
    scriptSrc: ["'self'", "https://trusted.cdn.com"],
    styleSrc: ["'self'", "'unsafe-inline'"],
    imgSrc: ["'self'", "data:", "https://images.example.com"],
    objectSrc: ["'none'"],
    baseUri: ["'self'"],
    formAction: ["'self'"],
  }
}));

يعين Helmet أيضًا رؤوسًا أخرى مثل X-Content-Type-Options وReferrer-Policy افتراضيًا.

اختبار الرؤوس الخاصة بك

بعد النشر، تحقق من رؤوسك باستخدام أدوات مطوري المتصفح (علامة التبويب Network) أو الماسحات الضوئية عبر الإنترنت مثل SecurityHeaders.com. تحقق من أن:

راجع وحدّث سياساتك بانتظام مع تطور موقعك.

الأسئلة الشائعة

ما هو أهم رأس أمان؟

غالبًا ما تعتبر سياسة أمان المحتوى (CSP) الأكثر أهمية لأنها تخفف مباشرة من هجمات XSS وحقن البيانات، والتي تعد من أكثر ثغرات الويب شيوعًا.

هل يمكن لرؤوس الأمان أن تحل محل تدابير الأمان الأخرى؟

لا. رؤوس الأمان هي طبقة دفاع في العمق. لا تزال بحاجة إلى البرمجة الآمنة، والتحقق من المدخلات، والمصادقة، وغيرها من أفضل الممارسات.

هل ستؤدي إضافة رؤوس الأمان إلى تعطيل موقعي؟

إذا تم تكوينها بشكل خاطئ، خاصة CSP، فقد تحظر الموارد المشروعة. اختبر دائمًا في بيئة تجريبية وراقب وحدة تحكم المتصفح بحثًا عن الانتهاكات قبل النشر إلى الإنتاج.

هل أنت مستعد لتأمين موقعك؟ ابدأ بإضافة الرؤوس المذكورة أعلاه، ثم اختبر باستخدام أدوات مطوري المتصفح. للحصول على طريقة سريعة لفحص وتنسيق استجابات JSON من ماسح الأمان الخاص بك، جرب JSON Formatter.