Skip to content
IsSafeSite
2 دقيقة قراءةIsSafeSite Team

أكثر 10 أخطاء شيوعاً في ترويسات الأمان (وكيفية إصلاحها)

ترويسات الأمان أرخص تحصين يمكنك نشره، وأسهله خطأً في التفاصيل. إليك أكثر عشرة أخطاء يشير إليها الفاحصون، مع الإصلاح الدقيق لكل منها.

الترويساتالتحصينCSP

ترويسات استجابة HTTP ضابط أمني نادر: يكلّف بضعة أسطر إعداد ويحمي كل زائر فوراً. ولهذا أيضاً يكثر الخطأ فيها: سهلة النسخ واللصق، صعبة الاختبار. هذه عشرة مشكلات تظهر مراراً في نتائج الفحص.

1. غياب HSTS (أو HSTS بلا preload)

بدون Strict-Transport-Security، قد يُعترَض طلبٌ واحد بنص صريح قبل التحويل إلى HTTPS. اضبط max-age طويلاً وشمل النطاقات الفرعية:

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

لا تُضِف preload إلا بعد أن يصبح كل نطاق فرعي HTTPS فقط — فالتراجع عنه بسرعة صعب.

2. سياسة Content-Security-Policy تسمح بـ unsafe-inline

script-src 'unsafe-inline' يعيد فتح ثغرة XSS نفسها التي وُجدت CSP لإغلاقها. انتقل إلى nonce أو hash:

Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-{random}'; object-src 'none'; base-uri 'self'

3. إبقاء CSP في وضع report-only إلى الأبد

Content-Security-Policy-Report-Only لمرحلة الإطلاق. كثير من المواقع تتركه أشهراً يجمع تقارير دون فرض أي شيء. استخدم report-only لاكتشاف المخالفات، ثم انتقل إلى الترويسة المُنفِّذة حين يهدأ.

4. X-Frame-Options بدل frame-ancestors

X-Frame-Options قديمة ولا يمكنها التعبير عن قائمة سماح. فضّل توجيه CSP الذي تحترمه المتصفحات الحديثة:

Content-Security-Policy: frame-ancestors 'self'

5. غياب X-Content-Type-Options

بدون X-Content-Type-Options: nosniff، قد يستنشق المتصفح نوع المحتوى (MIME) وينفّذ ما قدّمته كنص. ترويسة واحدة بلا أي عيب — اضبطها دائماً.

6. Referrer-Policy خطِرة أو غائبة

الإعداد الافتراضي يسرّب عناوين URL كاملة (بما فيها الرموز في سلسلة الاستعلام) إلى أطراف أخرى. خيار آمن وواسع التوافق:

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

7. ترك Permissions-Policy على افتراضي المتصفح

إن كان تطبيقك لا يستخدم الكاميرا أو الميكروفون أو الموقع، فصرّح بذلك بوضوح كي لا يستطيعه سكربت مخترَق أيضاً:

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

8. ضبط الترويسات على HTML دون الـ API

الترويسات التي يضيفها إطار الواجهة الأمامية كثيراً ما تفوّت مسارات API والتحويلات وصفحات الأخطاء. يختبر الفاحصون تلك المسارات مباشرة. اضبط ترويسات الأمان عند الحافة — وكيل عكسي أو CDN أو وسيط المنصة — ليكون الشمول موحّداً.

9. ترويسات متعارضة من طبقات متعددة

حين يضبط تطبيقك وشبكة التوزيع (CDN) معاً Content-Security-Policy، قد يرى المتصفح ترويستين فيطبّق *التقاطع*، مُعطّلاً مزايا بصمت. حدّد طبقة مرجعية واحدة واحذف التكرارات.

10. تخزين الاستجابات الحساسة مؤقتاً

الصفحات المُوثَّقة واستجابات API التي تحمل بيانات شخصية يجب ألا تُخزَّن مؤقتاً لدى الوكلاء المشتركين:

Cache-Control: no-store

أكّد بإعادة فحص

الترويسات تتفاعل، فغيّرها على دفعات صغيرة وأعد الفحص بعد كل دفعة. إن كنت جديداً على قراءة النتائج، فابدأ بـكيف تقرأ تقرير فحص أمان الموقع؛ ولطبقة النقل تحت هذه الترويسات، راجع أخطاء إعداد SSL/TLS التي تعرّض موقعك للخطر. يُشغَّل فحص الترويسات الكامل في كل مرة — راجع جميع الفحوص في صفحة المزايا.

حوّل هذه الفحوص إلى تقرير فحص لموقعك أنت.

شغّل فحصاً مجانياً واحصل على نتائج مرتبة حسب الأولوية وقابلة للتنفيذ في نحو 30 ثانية.

افحص موقعي

تابع القراءة