رؤوس الأمان هي مجموعة فرعية من رأس استجابة HTTP يمكن تعيينها بواسطة خادم ويب يقوم كل منها بتطبيق عنصر تحكم أمان في المتصفحات. رؤوس HTTP هي شكل من أشكال البيانات الوصفية المرسلة مع طلبات الويب والاستجابات. يمنع عنوان الأمان "X-Content-Type-Options" المتصفحات من إجراء استنشاق MIME.
ملاحظة: رؤوس HTTP ليست مقصورة على HTTP وتستخدم أيضًا في HTTPS.
ما هو استنشاق MIME؟
عندما يتم إرسال أي بيانات عبر الويب ، فإن أحد أجزاء البيانات الوصفية المضمنة هو نوع MIME. تعد ملحقات بريد الإنترنت متعددة الأغراض أو أنواع MIME معيارًا يستخدم لتحديد نوع البيانات التي يحتوي عليها الملف ، مما يشير إلى كيفية معالجة الملف. عادةً ما يتكون نوع MIME من نوع ونوع فرعي مع معلمة وقيمة اختيارية. على سبيل المثال ، سيكون للملف النصي UTF-8 نوع MIME “نص / عادي ؛ charset = UTF-8 ”. في هذا المثال ، النوع هو "نص" ، النوع الفرعي "عادي" ، المعلمة "مجموعة أحرف" ، والقيمة هي "UTF-8".
لمنع سوء التسمية وسوء التعامل مع الملفات ، تقوم خوادم الويب عادة باستنشاق MIME. هذه عملية يتم فيها تجاهل نوع MIME المنصوص عليه صراحة ، وبدلاً من ذلك ، يتم تحليل بداية الملف. تتضمن معظم أنواع الملفات تسلسلات رأس تشير إلى نوع الملف. في معظم الأحيان ، تكون أنواع MIME صحيحة ، ولا يحدث استنشاق الملف أي فرق. إذا كان هناك اختلاف ، فستستخدم خوادم الويب نوع الملف المتشمم لتحديد كيفية التعامل مع الملف بدلاً من نوع MIME المعلن.
تحدث المشكلة إذا تمكن المهاجم من تحميل ملف مثل صورة PNG ، لكن الملف هو في الحقيقة شيء آخر مثل كود JavaScript. لأنواع الملفات المماثلة ، مثل نوعين من النصوص ، قد لا يتسبب ذلك في الكثير من المشكلات. ومع ذلك ، تصبح مشكلة خطيرة ، إذا كان من الممكن بعد ذلك تنفيذ ملف غير ضار تمامًا بدلاً من ذلك.
ماذا تفعل X-Content-Type-Options؟
يحتوي رأس X-Content-Type-Options على قيمة واحدة محتملة "X-Content-Type-Options: nosniff". يؤدي تمكينه إلى إعلام متصفح المستخدم بأنه لا يجب عليه إجراء استنشاق لنوع MIME والاعتماد بدلاً من ذلك على القيمة المعلنة صراحةً. بدون هذا الإعداد ، إذا تم إخفاء ملف JavaScript ضار كصورة مثل PNG ، فسيتم تنفيذ ملف JavaScript. مع تمكين X-Content-Type-Options ، سيتم التعامل مع الملف كصورة يفشل تحميلها لأن الملف ليس تنسيق صورة صالحًا.
X-Content-Type-Options ليست ضرورية بشكل خاص على موقع الويب الذي يستخدم موارد الطرف الأول بالكامل ، حيث لا توجد فرصة لعرض ملف ضار عن طريق الخطأ. إذا كان أحد مواقع الويب يستخدم محتوى تابعًا لجهة خارجية مثل موارد خارجية أو موارد مقدمة من المستخدم ، فإن خيارات نوع المحتوى من X توفر الحماية ضد هذا النوع من الهجوم.