أكثر 10 أخطاء شيوعاً في ترويسات الأمان (وكيفية إصلاحها)
ترويسات الأمان أرخص تحصين يمكنك نشره، وأسهله خطأً في التفاصيل. إليك أكثر عشرة أخطاء يشير إليها الفاحصون، مع الإصلاح الدقيق لكل منها.
ترويسات استجابة 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-origin7. ترك 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 ثانية.
افحص موقعيتابع القراءة
كيف تقرأ تقرير فحص أمان الموقع
يعيد الفحص عشرات النتائج ودرجة إجمالية. إليك كيف تحوّل هذا الناتج إلى قائمة إصلاحات قصيرة ومرتبة حسب الأولوية دون أن تغرق في الضجيج.
أخطاء إعداد SSL/TLS التي تعرّض موقعك للخطر
وجود قفل صالح لا يعني أن TLS لديك سليم. هذه أخطاء إعداد الشهادات والبروتوكولات التي تُضعف HTTPS بصمت، وكيف تكتشفها.