ما هي ترويسات HTTP؟
ترويسات HTTP هي أسطر «الاسم: القيمة» التي تُرسَل مع الطلب أو الاستجابة وتصفها — نوع المحتوى وطوله، وقواعد التخزين المؤقت، والتوثيق، واللغات المقبولة، وملفات تعريف الارتباط، وسياسات الأمان. يعرّف RFC 9110 الحقول القياسية؛ أسماء الترويسات غير حساسة لحالة الأحرف بخلاف قيمها، وقد تتكرر الترويسة نفسها أكثر من مرة.
كيفية استخدام مدقّق ترويسات API
- انسخ ترويسات الاستجابة من curl -i أو الوكيل لديك أو أدوات المطوّر في المتصفح ثم الصقها.
- اختر «استجابة JSON API» أو «صفحة HTML» وعلّم مربع CORS إذا كانت المتصفحات تستدعي نقطة النهاية من أصل مختلف (cross-origin).
- تحقّق واعمل على الجدول بدءاً من الأخطاء وصولاً إلى الملاحظات الإعلامية.
- نزّل الفحوصات بصيغة CSV لإضافتها إلى قائمة المهام (backlog).
مزايا مدقّق ترويسات API
- يفحص ترويسات المحتوى والأمان والتخزين المؤقت وCORS وتحديد المعدّل والممارسات العامة وفق أفضل ممارسات واجهات API
- توصيات قابلة للتطبيق مع أمثلة لقيم الترويسات
- درجة من 100 مع عدد الأخطاء والتحذيرات والملاحظات الإعلامية والفحوصات الناجحة
- يقبل أسطر "Name: value" الخام (سطر الحالة اختياري) أو كائن JSON
- وضع لواجهات JSON API مقابل صفحات HTML؛ وتوقّع CORS اختياري
مثال على مدقّق ترويسات API
ترويسات نموذجية لواجهة Express
الإدخال:
Content-Type: application/json
Server: nginx/1.24.0
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: trueالنتيجة:
Score 31/100 · Errors 1 · Warnings 6
ERROR Access-Control-Allow-Origin — Wildcard origin combined with Allow-Credentials: true is rejected by browsers.
WARNING X-Powered-By — reveals the technology stack. Remove it.
WARNING Strict-Transport-Security — missing. Add max-age=31536000; includeSubDomains.الأسئلة الشائعة حول مدقّق ترويسات API
ما القواعد التي تُفحص؟
وجود Content-Type ومجموعة الأحرف (charset)، وX-Content-Type-Options، وقوة HSTS، وCSP، والحماية من اختطاف النقر (clickjacking)، وReferrer-Policy، وأعلام ملفات تعريف الارتباط (cookies)، والكشف عن التقنية عبر Server/X-Powered-By، واتساق Cache-Control/ETag/Vary، ومزالق CORS (حرف البدل مع بيانات الاعتماد، والأصل null)، وترويسات تحديد المعدّل، ومعرّفات الربط (correlation ids)، والترويسات المهملة، والتكرارات، والقيم المشوّهة.
كيف تُحسب الدرجة؟
تبدأ من 100، ويُخصم 15 لكل خطأ و7 لكل تحذير و2 لكل ملاحظة إعلامية، دون أن تقل عن 0. إنها مؤشر سريع وليست درجة امتثال.
هل يمكنني لصق الترويسات بصيغة JSON؟
نعم — يُقبل كائن JSON يربط أسماء الترويسات بقيمها، وكذلك أسطر "Name: value" الخام.
هل تنطبق التوصيات على صفحات HTML؟
بدّل نوع الاستجابة إلى «صفحة HTML» للحصول على نصائح موجّهة للصفحات (يصبح غياب CSP تحذيراً، ويُعدّ text/html مقبولاً).
ملاحظات تقنية
تتبع القواعد إرشادات OWASP للترويسات الآمنة، وRFC 9111 (التخزين المؤقت)، ومعيار Fetch (لـ CORS)، ومسودة IETF لترويسة RateLimit. وتُعلَّم الترويسات المهملة (X-XSS-Protection وExpires وPragma وHPKP) بوصفها ملاحظات إعلامية.
المراجع
- RFC 9110: HTTP Semanticsمعاني أساليب HTTP وحقول الترويسات ورموز الحالة والتفاوض على المحتوى، بغضّ النظر عن إصدار البروتوكول.
- HTTP headers — MDNمرجع لترويسات الطلب والاستجابة: الصياغة والتوجيهات ودعم المتصفحات.
- OWASP Cheat Sheet Series: HTTP Headersأي ترويسات أمنية تُرسَل (HSTS وCSP وX-Content-Type-Options وحماية الإطارات) وأيها تُزال (Server وX-Powered-By).