HSTS е заглавка за отговор на уеб сигурността. Името е акроним за „HTTP Strict Transport Security“. Функцията на HSTS заглавката е да принуди браузърите да се свързват с уебсайтове, използващи HTTPS.
Съвет: HTTPS използва криптиране, за да защити вашата уеб връзка от хакери, които се опитват да я променят или наблюдават. HTTP няма тези защити и така хакер на правилното място може да наблюдава и променя вашия HTTP трафик.
Заглавката на уеб отговора е част от метаданни, изпращани от сървъра, когато отговаря на уеб заявки. Подмножество от тези заглавки често се наричат заглавки за сигурност, тъй като тяхната цел е да повишат сигурността на уебсайта и потребителя.
HSTS заглавката има две задължителни части и две незадължителни. Името на заглавката „Strict-Transport-Security“ и след това операторът и стойността „max-age“ са задължителни. Друга двойка оператори, „includeSubDomains“ и „preload“ също понякога се използват.
Когато браузърът получи HTTPS отговор с HSTS заглавката, той получава инструкции да се свърже с този уебсайт и всички ресурси на него, като се използва изключително HTTPS за продължителността на таймера „max-age“. „Max-age“ е променлива, която описва колко дълго дадена настройка трябва да бъде запомнена от браузъра. Стойността на “max-age” е посочена в секунди, препоръчителната стойност е “31536000”, което е една година.
Идеята е, че в рамките на продължителността на този таймер, който се нулира при всяко следващо зареждане на страница, браузърът ще изисква HTTPS връзка и ще отхвърли всякакви HTTP ресурси. Това предпазва от атаки на човек в средата, при които хакер между вас и уеб сървъра може да манипулира получените от вас отговори.
Основната точка, в която това ви защитава, е първата връзка. Обикновено, когато се свържете с уебсайт, можете да поискате HTTP уебсайта и след това да бъдете препратени към HTTPS уебсайта. За съжаление, хакер в позиция „човек в средата“ може да предотврати това надграждане до HTTPS и след това да открадне или наблюдава активността ви на уебсайта. След като заглавката на HSTS бъде видяна от браузъра обаче, вашият браузър ще направи дори първата връзка през HTTPS, защитавайки ви от хакери.
HSTS също така предотвратява зареждането на всякакви несигурни ресурси, които също могат да бъдат злонамерено променени от нападател, ако са доставени през HTTP.
Операторът „includeSubDomains“ се използва, за да посочи, че заглавката трябва да се прилага и за всички поддомейни на уебсайта.
Списъкът за предварително зареждане на HSTS
Може да забележите, че HSTS все още не ви защитава при първия път, когато се свържете с уебсайт. Тук се намесва операторът „предварително зареждане“. Уебсайтовете могат да се представят за включване в списъка за предварително зареждане на HSTS, операторът „предварително зареждане“ е задължителен индикатор, ако това е така. Списъкът за предварително зареждане на HSTS се актуализира редовно и се съхранява в браузъра, ако даден сайт е включен в него, тогава браузърът ще приложи HSTS защитите към него. Това се случва дори при първата връзка, преди браузърът да е успял да види заглавката на HSTS отговора.
Съвет: Изисква се „максимална възраст“ от година или повече, за да се добави към списъка за предварително зареждане на HSTS.
Проблеми с HSTS
Една от основните точки на HSTS е, че той представя съобщение за грешка, ако има проблеми с HTTPS връзката. Като допълнителна предпазна мярка, потребителите не трябва да могат да заобикалят съобщенията за грешки при HSTS, както биха могли да направят с нормални HTTPS грешки.
За съжаление, това може да причини проблеми, ако една компания пусне HSTS преди целия уебсайт и всеки ресурс, използван в него, поддържа HTTPS. В този случай потребителите ще започнат да виждат съобщения за грешка в сигурността на HSTS, които не могат да заобиколят, като по същество напълно нарушават уебсайта. Най-лошото е, че простото премахване на заглавката на HSTS не решава проблема за тези потребители, тъй като браузърът им ще продължи да налага HSTS за потенциално продължилата месеци „максимална възраст“.
Поради това е изключително важно при първото разгръщане на заглавката да се използва кратка „max-age“. Ако има някакви проблеми, те продължават само за кратко време, след като бъдат открити. Само след като сте сигурни, че вашият уебсайт е напълно съвместим с HSTS, трябва да конфигурирате дълъг HSTS таймер.
Съвет: Възможно е също да зададете „max-age“ от 0, това по същество премахва запазения HSTS запис от всеки, който го види. Това може да помогне, ако има проблем, но ще засегне потребителите само когато и ако решат да опитат отново.