Scanverra

كيفية إصلاح رؤوس الأمان المفقودة

رؤوس الأمان هي رؤوس استجابة HTTP تخبر المتصفح بفرض سياسة نيابة عنك - رفض تحميل موقعك داخل iframe، رفض HTTP العادي بعد أول زيارة عبر HTTPS، رفض السكريبتات من أي مصدر غير نطاقك الخاص. غيابها أو ضعفها يترك شفرة تطبيق آمنة أساسًا عرضة لفئات كاملة من هجمات مستوى المتصفح.

لماذا تُفقد الرؤوس أو تبقى ضعيفة

  • إعدادات الاستضافة الافتراضية لا تتضمن أيًا منها. معظم خوادم الويب والمنصات لا تضيف رؤوس أمان ما لم تُهيّئها صراحة.
  • تُضاف سياسة CSP مرة واحدة، ثم لا تُراجَع مجددًا. مع إضافة التطبيق سكريبتات وعناصر تضمين وخطوط جديدة من جهات خارجية، تحجبها CSP ثابتة كُتبت قبل سنة بصمت - أو الأسوأ، يوسّعها أحدهم برمز عام (wildcard) لإيقاف الأخطاء، مما يبطل السياسة تمامًا.
  • يُضاف HSTS دون التوجيهات التي تجعله فعّالًا فعلًا. رأس Strict-Transport-Security بسيط بـ max-age قصير ودون includeSubDomains أو preload يوفّر حماية أضعف بكثير مما يبدو.
  • رؤوس مهجورة منسوخة من درس تعليمي قديم تبقى موجودة، مثل X-XSS-Protection، الذي تتجاهله المتصفحات الحديثة أو قد يُدخل خطرًا بحد ذاته.

كيفية تحديد المشكلة

هذه أعمق قدرة أمنية لدى Scanverra. يُجري فاحص الأمان تحليلًا حقيقيًا لتوجيهات CSP - يفحص تحديدًا base-uri وform-action وobject-src وframe-ancestors، إضافة إلى اكتشاف مصادر عامة (wildcard) واسعة النطاق - وفحص عمق كامل لـ HSTS يغطي max-age وincludeSubDomains وpreload. وبالنسبة لتوجيه preload تحديدًا، يُجري استدعاءً حيًا لواجهة برمجة تطبيقات hstspreload.org للتأكد من أن نطاقك مُدرَج فعليًا في قائمة Chrome للتحميل المسبق، لا مجرد الادعاء بذلك. كما ينبّه إلى الرؤوس المهجورة مثل X-XSS-Protection، ويربط كل نتيجة بمرجع CWE و OWASP Top 10 - على سبيل المثال، يُربط رأس HSTS المفقود بـ CWE-319 و OWASP A05:2021 - بحيث تتحول النتائج مباشرة إلى وثائق امتثال.

كيفية الإصلاح

1. أضف HSTS بالمجموعة الكاملة من التوجيهات

فرض HTTPS لمدة عام كامل، عبر النطاقات الفرعية، والتسجيل للتحميل المسبقtypescript
1Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

بعد إضافة preload، سجّل نطاقك على hstspreload.org - فالتوجيه وحده لا يُدرجك تلقائيًا، وسيستمر فحص Scanverra الحي في الإشارة إلى الثغرة حتى يُقبل التسجيل فعليًا.

2. اكتب Content-Security-Policy محددة النطاق حسب ما يحمّله موقعك فعليًا

سياسة CSP أولية بالتوجيهات التي تفحصها Scanverra صراحةtypescript
1Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self'; object-src 'none'; frame-ancestors 'self'

أضف مصادر موثوقة محددة إلى script-src/style-src فقط عند الحاجة - لا تلجأ أبدًا إلى رمز عام (*) أو مصدر مقتصر على المخطط (https:) فقط لإسكات أخطاء وحدة التحكم، لأن ذلك يبطل غرض السياسة تمامًا.

3. أضف الرؤوس القياسية المتبقية

الحماية من clickjacking واستنشاق MIME وحماية المُحيل (referrer)typescript
1X-Content-Type-Options: nosniff
2X-Frame-Options: DENY
3Referrer-Policy: strict-origin-when-cross-origin

frame-ancestors في CSP الخاصة بك هو البديل الحديث لـ X-Frame-Options وأكثر مرونة - أرسل كليهما، لأن المتصفحات القديمة تحترم فقط الرأس التقليدي.

4. أزل الرؤوس المهجورة بدلًا من إبقائها

X-XSS-Protection مهجور، وتوصي OWASP صراحة بإزالته كليًا بدلًا من ضبطه على أي قيمة - فسياسة CSP حقيقية هي البديل الحديث، لا رفيقة له.

كيف تكتشف Scanverra هذه المشكلة

يقرأ فاحص الأمان في Scanverra رؤوس استجابتك الحية ويُجري تحليلًا حقيقيًا على مستوى التوجيهات، لا فحص وجود بسيط - تغطية توجيهات CSP واكتشاف المصادر العامة، وعمق قيمة HSTS بما في ذلك بحث حي عبر hstspreload.org، واكتشاف الرؤوس المهجورة، وكل نتيجة مربوطة بمراجع CWE و OWASP و PCI حيثما ينطبق ذلك.

FAQ

Frequently asked questions

ما أكثر رأس تأثيرًا يجب إضافته أولًا؟

Strict-Transport-Security (HSTS)، إن كان مفقودًا - فهو الفرق بين "HTTPS متاح" و"HTTPS مفروض"، ويُربط بـ CWE-319 و OWASP A05:2021، وكلاهما مطلوب عادة للامتثال لـ PCI. تأتي Content-Security-Policy كأعلى إضافة تأثيرًا بعده، لكنها تتطلب ضبطًا أدق.

كيف تعرف Scanverra ما إذا كان نطاقي مُدرجًا فعليًا في التحميل المسبق لـ HSTS، لا مجرد ادعاء ذلك؟

تُجري استدعاءً حيًا لواجهة برمجة تطبيقات hstspreload.org لاسم مضيفك، بدلًا من الثقة برأسك وحده - فإذا كان رأس HSTS لديك يتضمن توجيه preload لكن نطاقك لم يُسجَّل ويُقبل فعليًا في قائمة Chrome للتحميل المسبق، تنبّهك Scanverra إلى تلك الثغرة تحديدًا.

لماذا تنبّه Scanverra إلى X-XSS-Protection كمشكلة بدلًا من علامة جيدة؟

لأنه مهجور، وفي بعض المتصفحات القديمة كان بإمكانه إدخال ثغرات XSS فعليًا بدلًا من منعها - وتوصي OWASP صراحة بإزالته لصالح Content-Security-Policy حقيقية. وجوده ليس نقطة لصالحك؛ بل يُدرج كنتيجة يجب إزالتها.

ماذا تعني مراجع CWE و OWASP في تقريري فعليًا؟

تربط مراجع CWE (تصنيف نقاط الضعف الشائعة) و OWASP Top 10 كل نتيجة بتصنيف ثغرات معياري في الصناعة - مفيد للصق مباشرة في تذكرة امتثال، أو مراجعة أمنية، أو كدليل لتدقيق SOC 2 / PCI، بدلًا من مجرد توصية غير رسمية.

هل يمكنني نسخ CSP من درس تعليمي وشحنها كما هي؟

لا - سياسة CSP عامة إما تكسر السكريبتات/الأنماط الفعلية لموقعك أو تكون فضفاضة جدًا فلا تفعل شيئًا. يفحص Scanverra توجيهاتك المحددة (base-uri، form-action، object-src، frame-ancestors، والمصادر العامة) بحيث يمكنك تضييق ما هو مفقود بالضبط بدلًا من التخمين.

Free - no sign-up required

تحقق من رؤوس الأمان لديك مجانًا

احصل على تحليل حقيقي لـ CSP وHSTS، مربوط بمراجع CWE وOWASP، في فحص واحد.

Run free audit