كيفية استخدام محلّل ترويسات الأمان
- الصق ترويسات الاستجابة (تصلح مخرجات curl -I) — أو انتقل إلى وضع المسح وأدخل عنوان URL عاماً.
- فعّل خيار «يُقدَّم عبر HTTPS» (Served over HTTPS) لتُطبَّق قواعد HSTS وملفات تعريف الارتباط الآمنة.
- انقر «تحليل» (Analyze) للحصول على التقدير وجدول فحوصات الترويسات.
- أصلح النتائج عالية الخطورة أولاً (غياب CSP/HSTS، والسكربتات المضمّنة عبر unsafe-inline)، ثم النتائج متوسطة الخطورة.
- انشر مجموعة الترويسات الموصى بها، ثم أعد المسح وتأكد من تحسّن التقدير.
مزايا محلّل ترويسات الأمان
- تقدير بالحروف من A+ إلى F مع درجة مرجّحة وحالة لكل ترويسة: ناجحة / تحتاج إلى تحسين / مفقودة
- تحليل توجيهات CSP: unsafe-inline/eval، ومصادر الأحرف البديلة (wildcard) والمخططات (scheme)، وغياب default-src/object-src/base-uri، ووضع report-only، وشبكات CDN التي تدعم JSONP
- التحقق من HSTS: max-age ≥ 6 أشهر، وincludeSubDomains، ومتطلبات التحميل المسبق (preload)
- X-Frame-Options مقابل frame-ancestors في CSP، وX-Content-Type-Options، وتسريب Referrer-Policy، وصياغة Permissions-Policy
- العزل بين الأصول (COOP وCOEP وCORP)، والترويسات المهملة (X-XSS-Protection وHPKP وExpect-CT)، وترويسات Server/X-Powered-By التي تكشف الإصدارات
- مجموعة ترويسات موصى بها جاهزة للصق في nginx أو Apache أو Cloudflare أو إطار العمل الذي تستخدمه
مثال على محلّل ترويسات الأمان
موقع Express نموذجي
الإدخال:
content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.example.com; img-src *
strict-transport-security: max-age=2592000
x-frame-options: SAMEORIGIN
referrer-policy: no-referrer-when-downgrade
x-powered-by: Expressالنتيجة:
Grade: D (48/100)
Content-Security-Policy — Missing / weak: 'unsafe-inline' allows inline scripts; object-src and base-uri are not restricted.
Strict-Transport-Security — Improve: max-age is 30 days; at least 6 months is recommended.
X-Content-Type-Options — Missing.
Referrer-Policy — Improve: no-referrer-when-downgrade leaks the full URL.
X-Powered-By — discloses the technology stack.الأسئلة الشائعة حول محلّل ترويسات الأمان
كيف يُحسب التقدير؟
لكل ترويسة وزن (CSP 25، وHSTS 20، وX-Content-Type-Options والحماية من التأطير (framing) 10 لكل منهما، وReferrer-Policy 8، وPermissions-Policy 7، وCOOP/CORP/COEP 5). تكسب الترويسة الناجحة الوزن كاملاً، والقيم الضعيفة نصفه. ويتطلب التقدير A+ سياسة CSP قوية، وHSTS بقيمة max-age طويلة، وترويسات العزل بين الأصول.
ما الذي يجعل سياسة CSP ضعيفة؟
وجود 'unsafe-inline' أو 'unsafe-eval' في توجيهات السكربتات، أو مصادر بأحرف بديلة أو بمخطط فقط (* وhttps: وdata:)، أو غياب object-src 'none' وbase-uri وdefault-src، أو العمل في وضع Report-Only.
ما قيمة HSTS التي ينبغي أن أستخدمها؟
max-age=31536000; includeSubDomains; preload — يلزم ستة أشهر على الأقل للنجاح، وسنة كاملة مع includeSubDomains للتقديم إلى قائمة التحميل المسبق (preload).
هل ما زلت أحتاج إلى X-Frame-Options مع frame-ancestors في CSP؟
تتقدّم frame-ancestors في المتصفحات الحديثة؛ لكن أبقِ على X-Frame-Options: DENY للعملاء القديمة. وتعدّ الأداة الحماية من التأطير ناجحة عند ضبط أيٍّ منهما بشكل صحيح.
هل يحافظ لصق الترويسات على خصوصيتي؟
نعم. يعمل وضع اللصق بالكامل في متصفحك؛ ووضع المسح وحده هو الذي يرسل عنوان URL إلى مُرحِّل متقن الذي يجلب الصفحة مرة واحدة.
ملاحظات تقنية
تعكس أوزان التقييم الأثر: CSP 25، وHSTS 20، وX-Content-Type-Options والحماية من التأطير (framing) 10 لكل منهما، وReferrer-Policy 8، وPermissions-Policy 7، و5 لكل من COOP وCORP وCOEP (لا تُحتسب الترويسات الاختيارية عند غيابها). تكسب الترويسة الناجحة الوزن كاملاً، والقيمة الضعيفة نصفه، وتخصم كل نتيجة عالية الخطورة بضع نقاط إضافية. ويتطلب التقدير A+ إضافةً إلى ذلك سياسة CSP قوية، وHSTS ناجحة، ووجود COOP وCORP معاً.
يقيّم محلّل CSP كل توجيه على حدة، لذا يلغي وجود nonce أو hash عقوبة unsafe-inline (إذ تتجاهل المتصفحات unsafe-inline عند وجود nonce)، ويُعترف بـ frame-ancestors بوصفه حماية من اختطاف النقر (clickjacking) حتى دون X-Frame-Options.