چگونه می توان هدرهای HTTP امنیتی را برای جلوگیری از آسیب پذیری ها پیاده سازی کرد؟

آیا می دانید با پیاده سازی عناوین لازم در هدر پاسخ ، بسیاری از آسیب پذیری های امنیتی قابل رفع هستند?


امنیت به اندازه محتوا و جستجوگرها در وب سایت شما ضروری است ، و هزاران وب سایت به دلیل نادرست تنظیمات یا عدم محافظت از آنها هک می شوند. اگر صاحب وب سایت یا مهندس امنیت هستید و به دنبال محافظت از وب سایت خود هستید کلیک کردن ، تزریق کد ، انواع MIME ، XSS, حملات و غیره سپس این راهنما به شما کمک می کند.

در این مقاله ، در مورد هدرهای مختلف HTTP برای پیاده سازی در چندین وب سرور ، لبه شبکه صحبت خواهم کرد & ارائه دهندگان CDN برای محافظت بهتر از وب سایت.

یادداشت:

  • به شما توصیه می شود قبل از ایجاد تغییرات ، از نسخه پیکربندی تهیه کنید
  • بنابراین ممکن است برخی از هدرها در همه مرورگرها پشتیبانی نشوند سازگاری را بررسی کنید قبل از اجرای.
  • برای پیاده سازی این هدرها باید در Apache فعال شود. اطمینان حاصل کنید که خط زیر در فایل httpd.conf بدون شرح است.

ماژول های header_module / mod_headers.so را بارگذاری کنید

  • پس از پیاده سازی ، می توانید از ابزار آنلاین هدر ایمن برای تأیید نتایج استفاده کنید.

با استفاده از WordPress ؟: ممکن است بخواهید استفاده کنید افزونه HTTP Headers, که به این هدرها و خیلی موارد دیگر اهمیت می دهد.

X-XSS-Protection

هدر X-XSS-Protection می تواند از برخی از سطح جلوگیری کند XSS (برنامه نویسی در سطح سایت) ، و این با IE 8+ ، Chrome ، Opera ، Safari سازگار است & اندروید.

گوگل ، فیس بوک ، گیتوب از این هدر استفاده می کنند و بیشتر مشاوره آزمایش نفوذ از شما می خواهند تا این کار را انجام دهید.

چهار راه ممکن برای پیکربندی این هدر وجود دارد.

مقدار پارامترمعنی
0فیلتر XSS غیرفعال است
1در صورت شناسایی حمله ، فیلتر XSS صفحه را فعال و ضد عفونی کرد
1 ؛ حالت = بلوکدر صورت شناسایی حمله ، فیلتر XSS فعال و مانع از نمایش صفحه می شود
1؛ گزارش = http: //example.com/report_URIفیلتر XSS در صورت شناسایی حمله ، تخلف را فعال و گزارش کرد

بیایید پیاده سازی کنیم 1 ؛ حالت = بلوک در سرورهای وب زیر.

سرور HTTP Apache

مدخل زیر را در httpd.conf از وب سرور Apache خود اضافه کنید

تنظیم هدر X-XSS-Protection "1؛ حالت = بلوک"

راه اندازی مجدد آپاچی برای تأیید صحت

نگینکس

موارد زیر را در nginx.conf در زیر بلاک http اضافه کنید

add_header X-XSS-Protection "1؛ حالت = بلوک"؛

راه اندازی مجدد Nginx مورد نیاز است تا این موضوع را در هدر پاسخ صفحه وب خود منعکس کنید.

MaxCDN

اگر استفاده می کنید MaxCDN, سپس افزودن هدر آسان و در هنگام پرواز است.

برو به Edge Rules >> بر روی “New Rule” کلیک کرده و از کشویی “افزودن X-XSS-Header Protection” را انتخاب کنید.

مجلات

Microsoft IIS

  • مدیر IIS را باز کنید
  • سایتی را برای فعال کردن هدر سایت مورد نظر خود انتخاب کنید
  • به “هدرهای پاسخ HTTP” بروید.
  • در زیر “افزودن” را کلیک کنید
  • نام ، ارزش را وارد کنید و روی Ok کلیک کنید

محافظ iis-x-xss

  • برای دیدن نتایج ، IIS را مجدداً راه اندازی کنید

امنیت حمل و نقل دقیق HTTP

هدر HSTS (HTTP Strict Transport Security) برای اطمینان از ارسال کلیه ارتباطات از یک مرورگر بر روی HTTPS (HTTP Secure) ارسال می شود. این مانع از کلیک HTTPS از طریق پیام ها می شود و درخواست HTTP را به HTTPS تغییر مسیر می دهد.

قبل از اجرای این هدر ، باید اطمینان حاصل کنید که تمام صفحه وب سایت شما از طریق HTTPS قابل دسترسی است ، در غیر این صورت مسدود خواهد شد.

هدر HSTS در تمام جدیدترین نسخه های مرورگر مانند IE ، Firefox ، Opera ، Safari و Chrome پشتیبانی می شود. پیکربندی سه پارامتر وجود دارد.

مقدار پارامترمعنی
حداکثر سنمدت زمان (برای چند ثانیه) برای مرورگر بگویید که درخواست ها فقط از طریق HTTPS در دسترس هستند.
شامل SubDomainsپیکربندی برای دامنه فرعی نیز معتبر است.
پیش بارگذاریاگر دوست دارید دامنه شما در این لیست باشد از آنها استفاده کنید لیست پیش بارگذاری HSTS

بنابراین نمونه ای از پیکربندی HSTS برای یک سال ، از جمله پیش بارگذاری دامنه و زیر دامنه را می آوریم.

سرور HTTP Apache

می توانید HSTS را در Apache با افزودن مطلب زیر در پرونده httpd.conf پیاده سازی کنید

هدر تنظیم دقیق – حمل و نقل-امنیتی "حداکثر سن = 31536000؛ شاملSubDomains؛ پیش بارگذاری"

راه اندازی مجدد آپاچی برای دیدن نتایج

نگینکس

برای پیکربندی HSTS در Nginx ، ورودی بعدی را در دستورالعمل nginx.conf تحت سرور (SSL) اضافه کنید

add_header Strict-Transport-Security ‘max-age = 31536000؛ شاملSubDomains؛ preload ‘؛

طبق معمول ، برای تأیید مجدد Nginx را مجدداً راه اندازی می کنید

Cloudflare

اگر از Cloudflare استفاده می کنید ، می توانید HSTS را فقط با چند کلیک فعال کنید.

  • ورود به Cloudflare و سایت را انتخاب کنید
  • به برگه “Crypto” بروید و “فعال کردن HSTS” را کلیک کنید.

cloudflare-hsts-config

تنظیمات مورد نیاز خود را انتخاب کنید و تغییرات در پرواز اعمال می شوند.

Microsoft IIS

مدیر IIS را راه‌اندازی کنید و با رفتن به “سرآستین پاسخ HTTP” برای سایت مربوطه ، هدر را اضافه کنید.

iis-hsts

راه اندازی مجدد سایت

گزینه های X-Frame

برای جلوگیری از استفاده از سربرگ X-Frame-Options استفاده کنید کلیک کردن آسیب پذیری در وب سایت شما با اجرای این هدر ، به مرورگر دستور می دهید که صفحه وب خود را در قاب / iframe جاسازی نکند. این محدودیت در پشتیبانی مرورگر دارد ، بنابراین باید قبل از اجرای آن بررسی کنید.

می توانید سه پارامتر زیر را پیکربندی کنید.

مقدار پارامترمعنی
SAMEORIGINقاب / iframe محتوا فقط از همان منبع سایت مجاز است.
انکاراز هر دامنه ای برای جاسازی محتوای خود با استفاده از قاب / iframe جلوگیری کنید.
اجازه می دهد ازاجازه دهید محتوا را فقط در یک URI خاص تنظیم کنید.

بیایید نگاهی به نحوه اجرای “انکاربنابراین هیچ دامنه ای صفحه وب را وارد نمی کند.

آپاچی

خط زیر را در httpd.conf اضافه کنید و برای تأیید نتایج ، وب سرور را مجدداً راه اندازی کنید.

هدر همیشه گزینه X-Frame-Options DENY را ضمیمه می کند

نگینکس

موارد زیر را در nginx.conf تحت دستورالعمل / بلوک سرور اضافه کنید.

add_header X-Frame- گزینه های “DENY”؛

برای تأیید نتایج مجدداً راه اندازی کنید

F5 LTM

iRule را با موارد زیر ایجاد کنید و با سرور مجازی مربوطه در ارتباط باشید.

وقتی HTTP_RESPONSE

HTTP :: درج هدر "گزینه های X-FRAME" "انکار"

}

نیازی به راه اندازی مجدد هیچ چیز نیست ، تغییرات در هوا منعکس می شوند.

وردپرس

می توانید این هدر را از طریق WordPress نیز پیاده سازی کنید. موارد زیر را در پرونده wp-config.php اضافه کنید

header (‘X-Frame- Options: DENY)؛

اگر شما در حال ویرایش فایل راحت نیستید ، می توانید از افزونه ای که در اینجا توضیح داده شد یا در بالا ذکر شد استفاده کنید.

Microsoft IIS

با مراجعه به “هدرهای پاسخ HTTP” برای سایت مربوطه ، هدر را اضافه کنید.

iis-x-frame-options

برای دیدن نتایج ، سایت را مجدداً راه اندازی کنید.

X-Content-Type- گزینه ها

جلوگیری کردن MIME با افزودن این هدر به پاسخ HTTP صفحه وب ، خطرات امنیتی را تایپ کنید. با داشتن این سرصفحه ، از مرورگر دستور دهید انواع فایلها را به عنوان تعریف شده و snuffing محتوا در نظر بگیرید. فقط یک پارامتر وجود دارد که شما باید “nosniff” اضافه کنید.

بیایید ببینیم چگونه این هدر را تبلیغ کنیم.

آپاچی

می توانید این کار را با اضافه کردن خط زیر در پرونده httpd.conf انجام دهید

سرصفحه تنظیم X-Content-Type- گزینه ها

فراموش نکنید که وب سرور Apache را مجدداً راه اندازی کنید تا پیکربندی فعال شود.

نگینکس

خط زیر را در پرونده nginx.conf در زیر بلوک سرور اضافه کنید.

add_header X-Content-Type- گزینه های nosniff؛

طبق معمول ، شما باید Nginx را مجدداً بررسی کنید تا نتایج را بررسی کنید.

Microsoft IIS

IIS را باز کنید و به هدرهای پاسخ HTTP بروید

بر روی Add کلیک کرده و Name و Value را وارد کنید

انواع iis-mime

تأیید را کلیک کنید و IIS را دوباره تأیید کنید تا نتایج را تأیید کنید.

پین کردن کلید عمومی HTTP

انسان را در وسط به حداقل برسانید (MITM) با پین کردن گواهینامه ، به خطر حمله می کند. این ممکن است با HPKP (سربالایی کلید عمومی HTTP) هدر.

می توانید کلید عمومی گواهی ریشه یا گواهی فوری را پین کنید. در زمان نوشتن ، HPKP در حال حاضر در Firefox و Chrome کار می کند و از الگوریتم هش SHA-256 پشتیبانی می کند..

چهار تنظیم پارامتر ممکن وجود دارد.

مقدار پارامترمعنی
report-uri = “url”در صورت عدم موفقیت اعتبار پین ، به URL مشخص شده گزارش دهید. این اختیاری است.
pin-sha256 = “sha256key”در اینجا پین ها را مشخص کنید
حداکثر سن =مرورگر برای یادآوری زمان چند ثانیه ای که سایت فقط با استفاده از یکی از کلیدهای درج شده قابل دسترسی است.
شامل SubDomainsاین امر در مورد یک دامنه فرعی نیز کاربرد دارد.

بیایید نمونه سرصفحه HPKP را از facebook.com ببینیم

فقط-گزارش-کلید-گزارش-فقط: حداکثر سن = 500؛ pin-sha256 ="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18 ="؛ pin-sha256 ="r / mIkG3eEpVdm + u / ko / cwxzOMo1bk4TyHIlByibiA5E ="؛ pin-sha256 ="q4PO2G2cbkZhZ82 + JgmRUyGMoAeozA + BSXVXQWB8XWQ ="؛ report-uri = http: //reports.fb.com/hpkp/

اگر این کاری است که باید در وب سایت خود پیاده سازی کنید ، سپس به سمت آن بروید راهنمای اجرا توسط Scott Helme نوشته شده است.

خط مشی امنیتی محتوا

از XSS جلوگیری کنید ، کلیک کنید, تزریق کد با اجرای عنوان سیاست خط مشی محتوا (CSP) در پاسخ به HTTP در صفحه وب خود ، حملات کنید. CSP دستور دهید مرورگر بارگیری محتوای مجاز برای بارگیری در وب سایت.

همه مرورگرها از CSP پشتیبانی نمی کنند, بنابراین باید قبل از اجرای آن تأیید کنید. سه روش برای دستیابی به هدرهای CSP وجود دارد.

  1. محتوا-امنیت-سیاست – سطح 2 / 1.0
  2. X-Content-Security-Policy – مستهلک شده است
  3. X-Webkit-CSP – مستهلک

اگر هنوز از یک مستهلک استفاده می کنید ، ممکن است ارتقاء به جدیدترین آنها را در نظر بگیرید.

برای اجرای CSP چندین پارامتر امکان پذیر است و می توانید به آنها مراجعه کنید OWASP برای یک ایده با این حال ، دو پارامتر مورد استفاده را مرور خواهیم کرد.

مقدار پارامترمعنی
پیش فرض-srcهمه چیز را از یک منبع مشخص بارگیری کنید
script-srcفقط اسکریپت ها را از یک منبع تعریف شده بارگیری کنید

مثال زیر بارگیری همه چیز از همان مبدأ در سرورهای مختلف وب.

آپاچی

موارد زیر را در پرونده httpd.conf اضافه کنید و وب را مجدداً راه اندازی کنید تا مؤثر باشد.

تنظیم هدر محتوا-امنیت-سیاست "default-src ‘self’؛"

نگینکس

موارد زیر را در پرونده سرور در پرونده nginx.conf اضافه کنید

add_header Content-Security-Policy "default-src ‘self’؛"؛

Microsoft IIS

برای سایت مربوطه در مدیر IIS به سرفصل پاسخ HTTP بروید و موارد زیر را اضافه کنید

iis-csp

سیاستهای X-Permitted-Cross-Domain

از محصولات Adobe مانند PDF ، Flash و غیره استفاده می کنید؟ می توانید این سرصفحه را به شما آموزش دهید تا به مرورگر دستور دهد كه چگونه درخواست ها را از طریق دامنه متقاطع انجام دهد. با اجرای این عنوان ، بارگیری دارایی سایت خود را از حوزه های دیگر محدود می کنید تا از سوءاستفاده از منابع خودداری کنید.

چند گزینه در دسترس است.

مقدارشرح
هیچ یکهیچ سیاستی مجاز نیست
فقط استاداجازه دهید فقط خط مشی اصلی
همههمه چیز مجاز است
فقط توسط محتوایفقط نوع خاصی از محتوا مجاز است. مثال – XML
فقط توسط ftpفقط برای سرور FTP قابل اجرا است

آپاچی

اگر نمی خواهید هیچ سیاستی مجاز باشید.

هدر مجموعه سیاست های X-Permitted-Cross-Domain "هیچ یک"

باید عنوان زیر را مشاهده کنید.

نگینکس

و ، بیایید بگوییم که شما فقط باید استاد را پیاده کنید و موارد زیر را در nginx.conf در زیر سرور اضافه کنید.

add_header X-Permitted-Cross-Domain-Policy-only-master؛

و نتیجه.

ارجاع-خط مشی

آیا به دنبال کنترل سیاست ارجاع سایت خود هستید؟ مزایای حریم خصوصی و امنیتی خاصی وجود دارد. با این حال ، همه گزینه ها توسط همه مرورگرها پشتیبانی نمی شوند ، بنابراین قبل از اجرای ، الزامات خود را مرور کنید.

Referrer-Policy از نحو زیر پشتیبانی می کند.

مقدارشرح
بدون مراجعه کنندهاطلاعات ارجاع دهنده با درخواست ارسال نمی شوند.
بدون ارجاع-هنگامی که کاهش می یابدتنظیم پیش فرض که مراجعه کننده به همان پروتکل HTTP به HTTP ، HTTPS به HTTPS ارسال می شود.
ناامن-آدرسURL کامل با درخواست ارسال می شود.
همان منشاءارجاع دهنده فقط برای همان سایت مبدا ارسال می شود.
منشأ دقیقفقط وقتی پروتکل HTTPS است ارسال کنید
منشأ دقیق-هنگام-متقابلURL کامل از طریق پروتکل سخت مانند HTTPS ارسال می شود
اصل و نسبآدرس اصلی را در همه درخواستها ارسال کنید
منشاء-هنگام-متقابلURL کامل را با همان منبع ارسال کنید. با این وجود ، در موارد دیگر فقط URL مبدا را ارسال کنید.

آپاچی

اگر می خواهید مراجعه کننده را تنظیم کنید می توانید موارد زیر را اضافه کنید.

تنظیم هدر Referrer-Policy "بدون مراجعه کننده"

و بعد از راه اندازی مجدد ، باید در هدر پاسخ قرار داشته باشید.

نگینکس

بیایید بگوییم که شما باید همان اصل را پیاده سازی کنید ، بنابراین باید موارد زیر را اضافه کنید.

add_header ارجاع دهنده – خط مشی مشابه؛

پس از پیکربندی ، باید نتایج زیر را داشته باشید.

انتظار-CT

یک عنوان جدید که هنوز در وضعیت آزمایشی قرار دارد این است که به مرورگر دستور می دهد ارتباط با سرورهای وب را برای شفافیت گواهینامه (CT) تأیید کند. این پروژه توسط گوگل قصد دارد برخی از نقص های موجود در سیستم گواهی SSL / TLS را برطرف کند.

سه متغیر زیر برای هدر انتظار (CT) در دسترس است.

مقدارشرح
حداکثر سندر عرض چند ثانیه ، مرورگر باید خط مشی را ذخیره کند.
اجراییک دستورالعمل اختیاری برای اجرای سیاست.
گزارش اوریمرورگر برای ارسال گزارشی به آدرس مشخص شده در صورت عدم دریافت شفافیت گواهی معتبر.

آپاچی

فرض می کنیم شما می خواهید این خط مشی ، گزارش و حافظه پنهان را 12 ساعت اجرا کنید ، سپس موارد زیر را اضافه کنید.

تنظیم هدر Expect-CT ‘enforce ، max-age = 43200، report-uri ="https://somedomain.com/report"”

و این هم از نتیجه.

نگینکس

اگر می خواهید به مدت 1 ساعت گزارش دهید و حافظه پنهان نگه دارید?

add_header انتظار-CT ‘max-age = 60، گزارش-uri ="https://mydomain.com/report"’؛

خروجی خواهد بود.

ویژگی-سیاست

ویژگی های مرورگر مانند جغرافیایی ، صفحه نمایش کامل ، بلندگو ، USB ، پخش خودکار ، بلندگو ، لرزش ، میکروفون ، پرداخت ، vr و غیره را کنترل کنید تا در یک برنامه وب فعال یا غیرفعال شوید.

آپاچی

بیایید بگوییم که باید ویژگی تمام صفحه را غیرفعال کنید و برای این کار می توانید موارد زیر را در httpd.conf یا apache2.conf اضافه کنید.

سربرگ همیشه ویژگی خط مشی را تنظیم می کند "تمام صفحه “هیچ” "

چگونگی اضافه کردن چندین ویژگی در یک خط?

این هم ممکن است!

سربرگ همیشه ویژگی خط مشی را تنظیم می کند "تمام صفحه ‘هیچ’؛ میکروفون “هیچ”"

راه اندازی مجدد Apache HTTP برای دیدن نتیجه.

کد فوق به مرورگر دستور می دهد تا تمام صفحه و میکروفون را غیرفعال کند.

نگینکس

بیایید مثال دیگری بزنیم – ویژگی ارتعاش را غیرفعال کنید.

خط مشی Add_header "لرزش ‘هیچ’؛"؛

یا جغرافیایی ، دوربین و بلندگو را غیرفعال کنید.

خط مشی Add_header "جغرافیایی “هیچ” دوربین “هیچ”؛ بلندگو ‘هیچ’؛"؛

در اینجا خروجی بعد از شروع مجدد Nginx وجود دارد.

تمام پیکربندی های Nginx در nginx.conf یا هر پرونده سفارشی که استفاده می کنید ، زیر قالب HTTP قرار می گیرند.

نتیجه

ایمن سازی یک وب سایت چالش برانگیز است و امیدوارم با اجرای سرفصل های فوق لایه ای از امنیت را اضافه کنید. اگر یک سایت تجاری راه اندازی کرده اید ، ممکن است استفاده از cloud-WAF را نیز در نظر بگیرید سوکوري برای محافظت از تجارت آنلاین خود نکته خوب در مورد SUCURI این است که امنیت و عملکرد هر دو را ارائه می دهد.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map