ما هي رؤوس أمان HTTP وكيف تستخدمها؟

ما هي رؤوس أمان HTTP وكيف تستخدمها؟
القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا ، فقد نربح عمولة تابعة.

عندما تريد زيارة موقع ويب ، يتلقى متصفح الإنترنت الذي تستخدمه بعض البيانات من هذا الموقع. نتيجة لذلك ، يحدث حوار بين جهازك وموقع الويب. يحدث هذا مع بروتوكول يسمى HTTP. من الممكن اتخاذ بعض الإجراءات الأمنية الإضافية بالتدخل في هذا الحوار.





اجعل فيديو اليوم

إذا كنت تدير موقعًا على شبكة الإنترنت أو تهدف إلى الحصول على وظيفة كمطور ويب ، فإن رؤوس أمان HTTP لا تقدر بثمن بالنسبة لك ، لأنها تلعب دورًا نشطًا في أمان كل من المستخدم والموقع.





ما المقصود بأمان نقل HTTP الصارم (HSTS)؟

يفرض بروتوكول HTTP Strict Transport Security (HSTS) على المستخدمين استخدام HTTPS لكل طلب يقدمونه في متصفحهم. هذه طريقة قوية لمكافحة الهجمات الإلكترونية مثل تخفيض التصنيف ولضمان أمان جميع حركة المرور.





كيف أحصل على الوضع الرأسي على iPhone 7

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

ضع ذلك في الاعتبار فيما يتعلق بنموذج علامة رأس HTTP:



Strict-Transport-Security: max-age=16070200; 

عند إضافة هذه العلامة إلى معلومات رأس استجابة HTTP ، ستصبح جميع الطلبات التي ينشئها المستخدم HTTPS. مهما كان ما يكتبه المستخدم هنا ، سيقوم المتصفح تلقائيًا بتقييم البروتوكول باعتباره HTTPS وإنشاء اتصال آمن.

كيفية استخدام HSTS

بدلاً من إضافة كل معلومات رأس HTTP هذه في طبقة الكود ، يمكنك القيام بذلك على Apache و IIS و Nginx و Tomcat وتطبيقات خادم الويب الأخرى.





لتمكين HSTS في Apache:

LoadModule headers_module modules/mod_headers.so 
<VirtualHost *:443>
Header always set Strict-Transport-Security "max-age=2592000; includeSubDomains"
</VirtualHost>

لتمكين HSTS في Nginx:





add_header Strict-Transport-Security max-age=2592000; includeSubdomains 

لتمكين HSTS مع IIS web.config:

<system.webServer> 
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=63072000"/>
</customHeaders>
</httpProtocol>
</system.webServer>

لمستخدمي Cloudflare

توفر Cloudflare خدمة HTTPS مجانية للجميع من خلال خدمة Keyless SSL ؛ قبل التقدم بطلب للتحميل المسبق لـ HSTS ، يجب أن تعلم أن شهادتك لا تخصك. تستخدم الكثير من المواقع شهادات SSL لأنها طريقة بسيطة للحفاظ على أمان البيانات.

ومع ذلك ، Cloudflare الآن يدعم ميزة HSTS . يمكنك تنشيط جميع ميزات HSTS ، بما في ذلك التحميل المسبق ، عبر واجهة الويب Cloudflare دون مواجهة التكوينات على خادم الويب.

ما هي خيارات الإطار X؟

  زيادة أمان الموقع باستخدام رؤوس HTTP

X-Frame-Options عبارة عن رأس أمان تدعمه جميع المتصفحات الحديثة. تهدف X-Frame-Options إلى الحماية من سرقة النقرات مثل Clickjacking. كما يوحي الاسم ، يتعلق الأمر بعمل إطار مضمن ضعيف ، يُعرف أيضًا باسم iframe. هذه عناصر على موقع تقوم بتضمين صفحة HTML أخرى داخل الموقع 'الأصل' ، بحيث يمكنك استخدام محتوى من مصادر أخرى على موقعك. لكن المهاجمين يستخدمون إطارات iframes تحت سيطرتهم الخاصة لجعل المستخدمين ينفذون إجراءات لا يريدون القيام بها.

لهذا السبب ، تحتاج إلى منع المهاجمين من العثور على إطارات مضمنة على الموقع.

أين وكيف تستخدم خيارات الإطار X؟

ما يفعله X-Frame-Options ، يحاول بعض المطورين القيام به بلغات مثل JavaScript. هذا ليس خطأ تماما. ومع ذلك ، لا يزال هناك خطر لأن الرموز المكتوبة في العديد من الجوانب ليست كافية. لذلك سيكون من الحكمة ترك هذه المهمة لمتصفح الإنترنت الذي تستخدمه.

ومع ذلك ، كمطور ، هناك ثلاث معلمات يجب معرفتها حول خيارات الإطار X:

  • ينكر : يمنع تمامًا استدعاء الصفحة في أي إطار مضمن.
  • نفس الشيء : منع أي مجال بخلاف نطاقك من الاتصال داخل إطار iframe.
  • السماح من uri : قبول استدعاءات iframe لـ URI المعطى كمعامل. احظر الآخرين.

هنا ، نفس الشيء ميزة تبرز أكثر. لأنه بينما يمكنك استدعاء التطبيقات في نطاقاتك الفرعية المختلفة باستخدام إطارات مضمنة داخل بعضها البعض ، يمكنك منع استدعائها عبر المجال تحت سيطرة المهاجم.

فيما يلي أمثلة لكيفية استخدام SAMEORIGIN و X-Frame-Options مع NGINX و Apache و IIS:

استخدام X-Frame-Options SAMEORIGIN لـ Nginx:

add_header X-Frame-Options SAMEORIGIN; 

استخدام X-Frame-Options SAMEORIGIN لـ Apache:

Header always append X-Frame-Options SAMEORIGIN 

استخدام X-Frame-Options SAMEORIGIN لـ IIS:

<httpProtocol> 
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>

ستؤدي إضافة عنوان SAMEORIGIN وحده إلى توفير قدر أكبر من الأمان للزائرين.

ما هو X-XSS-Protection؟

يمكن أن يؤدي استخدام معلومات رأس X-XSS-Protection إلى حماية المستخدمين من هجمات XSS. أولا ، تحتاج إلى القضاء نقاط ضعف XSS على جانب التطبيق. بعد توفير الأمان المستند إلى الكود ، يلزم اتخاذ مزيد من الإجراءات ، مثل رؤوس حماية X-XSS ، ضد ثغرات XSS في المتصفحات.

كيفية استخدام X-XSS-Protection

يمكن للمتصفحات الحديثة اكتشاف حمولات XSS المحتملة عن طريق تصفية المحتوى الذي تم إنشاؤه بواسطة التطبيق. من الممكن تنشيط هذه الميزة باستخدام معلومات رأس X-XSS-Protection.

لتمكين رأس X-XSS-Protection في Nginx:

android auto لا يعمل مع s8
add_header X-Frame-X-XSS-Protection 1; 

لتمكين رأس X-XSS-Protection في Apache:

Header always append X-XSS-Protection 1 

لتمكين رأس X-XSS-Protection في IIS:

<httpProtocol> 
<customHeaders>
<add name="X-XSS-Protection" value="1" />
</customHeaders>
</httpProtocol>

لمنع تشغيل كتلة التعليمات البرمجية مع هجوم XSS افتراضيًا ، يمكنك استخدام شيء مثل هذا:

X-XSS-Protection: 1; mode=block 

يجب إجراء هذا التغيير الطفيف إذا كان هناك موقف يحتمل أن يكون خطيرًا وتريد منع عرض كل المحتوى.

ما هي خيارات نوع المحتوى X؟

تقوم المتصفحات بإجراء تحليل يسمى MIME Type Sniffing على المحتوى المقدم إليها بواسطة تطبيق الويب. على سبيل المثال ، إذا كان هناك طلب للوصول إلى ملف PDF أو ملف PNG ، فإن المتصفحات التي تقوم بتحليل استجابة HTTP تستنتج نوع الملف.

ضع في اعتبارك ملفًا بامتداد jpeg ولكنه يحتوي بالفعل على محتوى نصي / HTML. بعد استخدام الامتدادات وتمرير الحماية في وحدة التحميل ، يتم تحميل الملف بنجاح. يتم استدعاء الملف الذي تم تحميله عبر عنوان URL ويعيد استنشاق نوع MIME النص / HTML كنتيجة لذلك. يجعل المحتوى بتنسيق HTML. هذا عندما تحدث ثغرة XSS.

كيف يمكنني تنزيل مقاطع فيديو youtube على جهاز iphone الخاص بي

لذلك أنت بحاجة إلى منع المتصفحات من اتخاذ قرار بشأن المحتوى عن طريق استنشاق نوع MIME. للقيام بذلك ، يمكنك استخدام nosniff.

رأس X-Content-Type-Options لـ Nginx:

add_header X-Content-Type-Options nosniff; 

رأس X-Content-Type-Options لـ Apache:

Header always X-Content-Type-Options nosniff 

رأس X-Content-Type-Options لـ IIS:

<httpProtocol> 
<customHeaders>
<add name="X-Content-Type-Options" value="nosniff" />
</customHeaders>
</httpProtocol>

تطبيقات الويب تتبع جلسات المستخدمين عبر معرف الجلسة. ستقوم المستعرضات بتخزين هذا وإضافته تلقائيًا إلى كل طلب HTTP داخل نطاق ملف تعريف الارتباط.

إنه ممكن لاستخدام ملفات تعريف الارتباط لأغراض بخلاف نقل مفتاح الجلسة. يمكن للقراصنة اكتشاف بيانات المستخدم باستخدام ثغرة XSS المذكورة أعلاه أو من خلال هجوم عبر الموقع طلب تزوير (CSRF). إذن ما هي ملفات تعريف الارتباط الأكثر أهمية من حيث الأمان؟

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

  استخدام رؤوس HTTP لحماية المعلومات السرية على الموقع

هذا هو المكان HttpOnly يأتي أدناه. فيما يلي مثال على كيفية تعيين ملف تعريف الارتباط:

Set-Cookie: user=t=cdabe8a1c2153d726; path=/; HttpOnly 

لاحظ قيمة HttpOnly المرسلة في ملف تعيين ملف تعريف الارتباط عملية. سيرى المتصفح هذا ولن يعالج القيم بعلامة HttpOnly عند الوصول إلى ملف تعريف الارتباط من خلال ملف المستند عامل. علامة أخرى مستخدمة في عملية Set-Cookie هي علامة Secure. يشير هذا إلى أنه سيتم إضافة قيمة ملف تعريف الارتباط إلى العنوان لطلبات HTTPS فقط. عادة ما تستخدمه مواقع التجارة الإلكترونية لأنها تريد تقليل حركة مرور الشبكة وزيادة الأداء.

باستخدام هذه الطريقة ، يمكنك إخفاء بيانات المستخدمين المهمة مثل أسماء المستخدمين وكلمات المرور ومعلومات بطاقة الائتمان. لكن هناك مشكلة. يتم تعيين قيمة ملف تعريف ارتباط للمستخدمين الذين يكملون عملية تسجيل الدخول بدون علامة Secure. يمكن للمستخدم الحصول على مفتاح الجلسة عند تقديم طلب HTTP لروابط بخلاف HTTPS. من السهل إضافة العلم الآمن:

Set-Cookie: user=t=cdabe8a1c2153d726; path=/; Secure 

متى يجب ألا تستخدم HttpOnly؟ إذا كنت تعتمد على Javascript ، فيجب أن تكون حذرًا لأن هذا قد يجعل موقعك أقل أمانًا بدلاً من ذلك.

تعمل الخطوات الصغيرة من أجل أمان ويب أوسع

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