HSTS (أمان النقل الصارم HTTP)

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

ما هو HSTS؟

HSTS (أمان النقل الصارم عبر HTTP) هو آلية لأمن الويب تُخبر المتصفحات بالتفاعل مع موقع ويب عبر HTTPS فقط، وليس HTTP مطلقاً. وبمجرد رؤية المتصفح لرأس HSTS، سيحوّل جميع الطلبات المستقبلية تلقائياً إلى HTTPS ويرفض الاتصال عبر HTTP العادي، حتى إذا كتب المستخدم http://. صراحةً.

لماذا يهم HSTS؟

حتى مع شهادة SSL صالحة، تبقى هناك ثغرات:

هجوم إزالة SSL

1. يكتب المستخدم «example.com» (من دون https://)

2. يعترض المهاجم طلب HTTP الأولي

3. يمرر المهاجم الطلب إلى HTTPS ويعرض HTTP للمستخدم

4. يظن المستخدم أنه آمن، بينما يرى المهاجم كل شيء

يمنع HSTS ذلك بضمان ألا تنشئ المتصفحات طلب HTTP الأولي أبداً.

فوائد HSTS

صيغة رأس HSTS

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

التوجيهات

التوجيهالوصف
max-ageعدد الثواني التي يتذكر فيها المتصفح تفعيل HSTS (31536000 = سنة واحدة)
includeSubDomainsتطبيق حماية HSTS على جميع النطاقات الفرعية
preloadالموافقة على إدراج النطاق في قائمة التحميل المسبق الخاصة بالمتصفح

تطبيق HSTS

Nginx

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Apache

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Cloudflare

يمكن تفعيل HSTS في Cloudflare من المسار SSL/TLS → Edge Certificates → HTTP Strict Transport Security داخل لوحة التحكم، ثم مراجعة إعدادات الحماية قبل تطبيقها على النطاق

Express.js

const helmet = require('helmet');

app.use(helmet.hsts({

maxAge: 31536000,

includeSubDomains: true,

preload: true

}));

قائمة HSTS للتحميل المسبق

قائمة HSTS للتحميل المسبق هي قائمة نطاقات مضمّنة في المتصفحات، ولا ينبغي الوصول إليها إلا عبر HTTPS. وتلغي حتى خطر طلب HTTP الأول.

متطلبات التحميل المسبق

1. استخدم شهادة SSL صالحة وموثوقة

2. أعد توجيه جميع طلبات HTTP إلى HTTPS لضمان اتصال آمن

3. استخدم رأس HSTS يتضمن التوجيهات التالية:

- max-age بقيمة لا تقل عن 31536000 (سنة واحدة)

- التوجيه includeSubDomains لتطبيق السياسة على جميع النطاقات الفرعية

- التوجيه preload لطلب إدراج النطاق في قائمة التحميل المسبق

4. يجب أن تدعم جميع النطاقات الفرعية اتصال HTTPS قبل الإرسال إلى القائمة

الإرسال إلى قائمة التحميل المسبق

1. تحقق من المتطلبات: استخدم hstspreload.org للتحقق

2. أرسل النطاق: أدخل النطاق في hstspreload.org

3. انتظر الإدراج: قد يستغرق تحديث المتصفحات أسابيع أو أشهر

تحذيرات التحميل المسبق

التحميل المسبق دائم عملياً. تستغرق إزالته من القائمة أشهراً وتتطلب تحديثات للمتصفحات. لا تستخدمه إلا إذا كنت متأكداً من أن جميع النطاقات الفرعية ستدعم HTTPS إلى أجل غير مسمى.

التحقق من HSTS

أدوات مطوري المتصفح:

1. افتح أدوات المطور، ثم انتقل إلى تبويب Network

2. حمّل الموقع وانتظر اكتمال الاستجابة

3. افحص Response Headers بحثاً عن الرأس Strict-Transport-Security للتأكد من وصول سياسة HSTS

باستخدام curl:
curl -I https://example.com | grep -i strict
باستخدام DomScan:
curl "https://domscan.net/v1/health?domain=example.com"

# Reports hasHSTS in security details

حالة التحميل المسبق:

تحقق من hstspreload.org لمعرفة ما إذا كان النطاق محمّلاً مسبقاً.

استراتيجية نشر HSTS

المرحلة 1: max-age قصير

ابدأ بقيمة max-age قصيرة للاختبار:

Strict-Transport-Security: max-age=300

إذا حدث خلل، فلن يحتفظ المستخدمون بالتخزين المؤقت إلا لمدة 5 دقائق.

المرحلة 2: زيادة المدة

بعد التأكد من عمل HTTPS في كل مكان:

Strict-Transport-Security: max-age=86400

المرحلة 3: إضافة النطاقات الفرعية

بعد أن تدعم جميع النطاقات الفرعية HTTPS:

Strict-Transport-Security: max-age=2592000; includeSubDomains

المرحلة 4: النشر الكامل والتحميل المسبق

بعد أشهر من التشغيل المستقر:

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

ثم أرسل النطاق إلى قائمة التحميل المسبق.

مشكلات HSTS الشائعة

نطاق فرعي من دون HTTPS: قد يؤدي تفعيل includeSubDomains إلى تعطيل ذلك النطاق الفرعي، لأن المتصفح سيطلب اتصالاً آمناً به قبل السماح بالوصول. بيئات التطوير: قد يؤدي HSTS المخزن مؤقتاً من الإنتاج إلى تعطيل التطوير المحلي. رؤوس CDN/Proxy: تأكد من أن الوسيط لا يحذف رأس HSTS أثناء تمرير الطلبات. محتوى مختلط: يجب أن تكون جميع الموارد عبر HTTPS، ولا يصلح HSTS موارد HTTP المضمّنة.

يُعد HSTS ضرورياً لأي موقع يتعامل مع بيانات حساسة، ويوصى به بشدة لجميع مواقع HTTPS.

استفد من هذه المعرفة

استخدم API الخاص بـ DomScan للتحقق من توفر النطاقات وصحتها والمزيد.