Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор.
Когато искате да посетите уебсайт, интернет браузърът, който използвате, получава някои данни от този сайт. В резултат на това възниква диалог между вашето устройство и уебсайта. Това се случва с протокола, наречен HTTP. Възможно е да вземете някои допълнителни мерки за сигурност, като се намесите в този диалог.
Ако управлявате уебсайт или се стремите към кариера като уеб разработчик, заглавките за защита на 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:
LoadModule headers_module modules/mod_headers.so
<VirtualHost *:443>
Заглавката винаги комплектСтрог-Транспорт-Сигурност "максимална възраст=2592000; включване на поддомейни"
</VirtualHost>
За да активирате HSTS в Nginx:
add_header Strict-Transport-Security max-age=2592000; включват поддомейни
За да активирате HSTS с IIS web.config:
<system.webServer>
<httpПротокол>
<customHeaders>
<добавете име="Строга транспортна сигурност" стойност="максимална възраст=63072000"/>
</customHeaders>
</httpProtocol>
</system.webServer>
За потребители на Cloudflare
Cloudflare предоставя безплатна HTTPS услуга за всички със своята Keyless SSL услуга; преди да кандидатствате за предварително зареждане на HSTS, трябва да знаете, че вашият сертификат не ви принадлежи. Много сайтове използват SSL сертификати защото те са лесен начин за защита на данните.
Въпреки това, Cloudflare сега поддържа функцията HSTS. Можете да активирате всички HSTS функции, включително предварително зареждане, чрез уеб интерфейса на Cloudflare, без да се борите с конфигурациите на уеб сървъра.
Какво е X-Frame-Options?
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:
Заглавката винаги добавя X-Frame-Options SAMEORIGIN
Използване на X-Frame-Options SAMEORIGIN за IIS:
<httpПротокол>
<customHeaders>
<добавете име="X-Frame-Опции" стойност="СЪЩИЯ ПРОИЗХОД" />
</customHeaders>
</httpProtocol>
Простото добавяне само на заглавката SAMEORIGIN ще осигури по-голяма сигурност за вашите посетители.
Какво е X-XSS-защита?
Използването на информация за заглавката на X-XSS-Protection може да защити потребителите от XSS атаки. Първо, трябва да премахнете XSS уязвимости от страната на приложението. След осигуряване на защита, базирана на код, са необходими допълнителни мерки, т.е. заглавки X-XSS-Protection, срещу XSS уязвимости в браузърите.
Как да използвате X-XSS-защита
Съвременните браузъри могат да открият потенциални XSS полезни натоварвания чрез филтриране на генерирано от приложения съдържание. Възможно е да активирате тази функция с информацията за заглавката на X-XSS-Protection.
За да активирате заглавката X-XSS-Protection в Nginx:
add_header X-Frame-X-XSS-Protection 1;
За да активирате заглавката X-XSS-Protection в Apache:
Заглавието винаги добавя X-XSS-Protection 1
За да активирате заглавката X-XSS-Protection в IIS:
<httpПротокол>
<customHeaders>
<добавете име="X-XSS-защита" стойност="1" />
</customHeaders>
</httpProtocol>
За да предотвратите стартирането на кодовия блок с XSS атака по подразбиране, можете да използвате нещо подобно:
X-XSS-защита: 1; режим=блок
Тази малка промяна трябва да се направи, ако има потенциално опасна ситуация и искате да предотвратите изобразяването на цялото съдържание.
Какво е 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 винаги X-Content-Type-Options nosniff
X-Content-Type-Options заглавка за IIS:
<httpПротокол>
<customHeaders>
<добавете име="X-Content-Type-Options" стойност="носене" />
</customHeaders>
</httpProtocol>
Какво представлява флагът за бисквитки HttpOnly?
Уеб приложенията проследяват сесиите на потребителите чрез ID на сесията. Браузърите ще съхраняват това и автоматично ще го добавят към всяка HTTP заявка в обхвата на бисквитката.
Възможно е да използвате бисквитки за цели освен прехвърлянето на сесийния ключ обаче. Хакерите биха могли да открият потребителски данни, използвайки гореспоменатата XSS уязвимост или чрез Cross-Site Request Forgery (CSRF) атака. И така, кои бисквитки са най-важни от гледна точка на сигурността?
Можете да разгледате информацията, съдържаща се в последното изображение, върху което сте щракнали в галерията с изображения, като пример. По този начин HTTP трафикът е по-малък и част от натоварването може да бъде разрешено от интернет браузъра на потребителя със скриптове от страна на клиента.
Ето къде HttpOnly влиза. По-долу е даден пример как трябва да бъде присвояването на бисквитката:
Комплект-Бисквитка: потребител=t=cdabe8a1c2153d726; път=/; HttpOnly
Обърнете внимание на стойността HttpOnly, изпратена в Комплект-бисквитка операция. Браузърът ще види това и няма да обработва стойности с флага HttpOnly, когато бисквитката е достъпна през документ.бисквитка променлива. Друг флаг, използван в процеса Set-Cookie, е флагът Secure. Това показва, че стойността на бисквитката ще бъде добавена към заглавката само за HTTPS заявки. Сайтовете за електронна търговия обикновено го използват, защото искат да намалят мрежовия трафик и да увеличат производителността.
Използвайки този метод, можете да скриете критичните данни на потребителите като потребителски имена, пароли и информация за кредитни карти. Но има проблем. На потребителите, които завършат процеса на влизане, се присвоява стойност на бисквитка без флага за защита. Потребителят може да има сесийния ключ, когато направи HTTP заявка към връзки, които не са HTTPS. Добавянето на защитен флаг е лесно:
Комплект-Бисквитка: потребител=t=cdabe8a1c2153d726; път=/; Сигурно
Кога не трябва да използвате HttpOnly? Ако разчитате на Javascript, трябва да внимавате, тъй като това може да направи сайта ви по-малко защитен.
Малките стъпки работят за по-широка уеб сигурност
Не се нуждаете от усъвършенствани познания по софтуера и сървъра, за да увеличите сигурността на уеб приложенията. Като промените само няколко реда, можете да предотвратите някои сериозни атаки. Разбира се, това не е достатъчно. Това обаче е малка, но ефективна стъпка за сигурността на уебсайта. Знанието е най-добрата превантивна мярка, така че също е полезно да знаете фините нюанси на това как HTTPS защитава данните по време на прехвърляне.