Какво представляват заглавките за защита на HTTP и как ги използвате?

Какво представляват заглавките за защита на HTTP и как ги използвате?
Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор.

Когато искате да посетите уебсайт, интернет браузърът, който използвате, получава някои данни от този сайт. В резултат на това възниква диалог между вашето устройство и уебсайта. Това се случва с протокола, наречен HTTP. Възможно е да вземете някои допълнителни мерки за сигурност, като се намесите в този диалог.





MAKEUSEOF ВИДЕО НА ДЕНЯ

Ако управлявате уебсайт или се стремите към кариера като уеб разработчик, заглавките за защита на HTTP са безценни за вас, защото играят активна роля в сигурността както на потребителя, така и на уебсайта.





Какво е HTTP Strict-Transport-Security (HSTS)?

HTTP Strict Transport Security (HSTS) принуждава потребителите да използват HTTPS за всяка заявка, която правят в своя браузър. Това е солиден начин за борба с кибератаки като понижаване и за гарантиране на сигурността на целия трафик.





Активирането на HSTS е доста лесно. Помислете за диалога между клиент и сървър. Когато се опитате да получите достъп до сайт през вашия браузър, вие сте клиентът. Сайтът, който искате да отворите, зависи от сървъра. Вашата цел е да кажете на сървъра „Искам да отворя този сайт“. Това е операция по заявка. Сървърът, от друга страна, ви насочва към сайта, ако отговаряте на желаните условия.

Имайте това предвид по отношение на този примерен флаг за HTTP заглавка:



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

Когато добавите този флаг към информацията за заглавката на HTTP отговора, всички генерирани от потребителите заявки ще станат HTTPS. Каквото и да напише потребителят тук, браузърът автоматично ще оцени протокола като HTTPS и ще установи защитена връзка.

Как да използвате HSTS

Вместо да добавяте цялата тази информация за заглавката на HTTP в кодовия слой, можете да го направите на Apache, IIS, Nginx, Tomcat и други уеб сървърни приложения.





За да активирате HSTS в Apache:

как да копирате dvds на твърд диск
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-Frame-Options?

  Повишаване сигурността на уебсайта с HTTP хедъри

X-Frame-Options е хедър за сигурност, поддържан от всички съвременни браузъри. X-Frame-Options има за цел да защити срещу кражба на щракване, като Clickjacking. Както подсказва името, става въпрос за работата на уязвима вградена рамка, известна още като iframe. Това са елементи на сайт, които вграждат друга HTML страница в 'родителския' сайт, така че можете да използвате съдържание от други източници на вашия сайт. Но нападателите използват iframes под собствен контрол, за да накарат потребителите да извършват действия, които не искат.

Поради тази причина трябва да попречите на нападателите да могат да намерят вградени рамки на сайта.

Къде и как да използвате X-Frame-Options?

Това, което прави X-Frame-Options, някои разработчици се опитват да направят с езици като JavaScript. Това не е съвсем погрешно. Въпреки това, все още има риск, тъй като кодовете, написани в много аспекти, не са достатъчни. Така че би било разумно да оставите тази задача на интернет браузъра, който използвате.

Въпреки това, като разработчик, има три параметъра, които трябва да знаете за X-Frame-Options:

  • Отказвам : Напълно предотвратява извикването на страницата във всяка iframe.
  • СЪЩИЯ ПРОИЗХОД : Предотвратете извикване на домейн, различен от вашия собствен, в iframe.
  • ALLOW-FROM uri : Приема извиквания на iframe на URI, даден като параметър. Блокирайте другите.

Ето, СЪЩИЯ ПРОИЗХОД характеристика се откроява повече. Тъй като докато можете да извиквате приложения във вашите различни поддомейни с iframes един в друг, можете да предотвратите извикването им през домейна под контрола на атакуващия.

Ето примери за това как можете да използвате 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-защита?

Използването на информация за заглавката на X-XSS-Protection може да защити потребителите от XSS атаки. Първо, трябва да премахнете XSS уязвимости от страната на приложението. След осигуряване на защита, базирана на код, са необходими допълнителни мерки, т.е. заглавки X-XSS-Protection, срещу XSS уязвимости в браузърите.

Как да използвате X-XSS-защита

Съвременните браузъри могат да открият потенциални XSS полезни натоварвания чрез филтриране на генерирано от приложения съдържание. Възможно е да активирате тази функция с информацията за заглавката на X-XSS-Protection.

За да активирате заглавката X-XSS-Protection в Nginx:

как да отключите iphone 6 спринт безплатно
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-Content-Type-Options?

Браузърите извършват анализ, наречен MIME Type Sniffing, на съдържание, представено им от уеб приложението. Например, ако има заявка за достъп до PDF файл или PNG файл, браузърите, които извършват анализ на HTTP отговора, правят извод за типа на файла.

Помислете за файл с разширение jpeg, но който всъщност има текстово/HTML съдържание. След използване на разширенията и преминаване на защити в модула за качване, файлът е качен успешно. Каченият файл се извиква чрез URL адреса и MIME Type sniffing връща текст/HTML като резултат. Той рендира съдържанието като HTML. Тогава се появява XSS уязвимостта.

Така че трябва да попречите на браузърите да определят съдържанието чрез надушване на 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>

Уеб приложенията проследяват сесиите на потребителите чрез ID на сесията. Браузърите ще съхраняват това и автоматично ще го добавят към всяка HTTP заявка в обхвата на бисквитката.

Възможно е да използвате бисквитки за цели освен прехвърлянето на сесийния ключ обаче. Хакерите биха могли да открият потребителски данни, използвайки гореспоменатата XSS уязвимост или чрез Cross-Site Request Forgery (CSRF) атака. И така, кои бисквитки са най-важни от гледна точка на сигурността?

как да подобрите скоростта на изтегляне на steam

Можете да разгледате информацията, съдържаща се в последното изображение, върху което сте щракнали в галерията с изображения, като пример. По този начин HTTP трафикът е по-малък и част от натоварването може да бъде разрешено от интернет браузъра на потребителя със скриптове от страна на клиента.

  Използване на HTTP хедъри за защита на поверителна информация на сайта

Ето къде HttpOnly идва. По-долу е даден пример как трябва да бъде присвояването на бисквитката:

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

Обърнете внимание на стойността HttpOnly, изпратена в Комплект-бисквитка операция. Браузърът ще види това и няма да обработва стойности с флага HttpOnly, когато бисквитката е достъпна през документ.бисквитка променлива. Друг флаг, използван в процеса Set-Cookie, е флагът Secure. Това показва, че стойността на бисквитката ще бъде добавена към заглавката само за HTTPS заявки. Сайтовете за електронна търговия обикновено го използват, защото искат да намалят мрежовия трафик и да увеличат производителността.

Използвайки този метод, можете да скриете критичните данни на потребителите като потребителски имена, пароли и информация за кредитни карти. Но има проблем. На потребителите, които завършат процеса на влизане, се присвоява стойност на бисквитка без флага за защита. Потребителят може да има сесийния ключ, когато направи HTTP заявка към връзки, които не са HTTPS. Добавянето на защитен флаг е лесно:

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

Кога не трябва да използвате HttpOnly? Ако разчитате на Javascript, трябва да внимавате, тъй като това може да направи сайта ви по-малко защитен.

Малките стъпки работят за по-широка уеб сигурност

Не се нуждаете от усъвършенствани познания по софтуера и сървъра, за да увеличите сигурността на уеб приложенията. Като промените само няколко реда, можете да предотвратите някои сериозни атаки. Разбира се, това не е достатъчно. Това обаче е малка, но ефективна стъпка за сигурността на уебсайта. Знанието е най-добрата превантивна мярка, така че също е полезно да знаете фините нюанси на това как HTTPS защитава данните по време на прехвърляне.