X-XSS-Protection

X-XSS-Protection

Hlavička umožňuje nastavit konfiguraci XSS filtrů zabudovaných v prohlížeči.

Hlavička X-XSS-Protection povoluje využití zabudovaného filtru proti XSS (cross-site scripting attacks). Hlavička je podporována již pouze prohlížeči Internet Explorer a Safari.

Update 2021: Moderní prohlížeče tuto hlavičku ignorují. Chrome od verze 78 a Edge od verze 17 XSS Auditora odstranili. Prohlížeč Firefox tuto XSS ochranu ani neimplementoval. Je vhodné bezpečnost aplikace řešit pomocí Content-Security-Policy (CSP).

Proč používat X-XSS-Protection

I když máte perfektně ošetřeny v aplikaci vstupy, hlavička X-XSS-Protecton funguje jako další vrstva zabezpečení proti XSS útokům. Tento příznak vynucuje použití XSS filtru, který je sice v prohlížečích často defaultně nastavený, ale uživatel si jej může vypnout.
Nasazení hlavičky je vhodné pouze jako ochrana pro uživatele starších webových prohlížečů, které dosud nepodporují CSP.

Definice hlavičky X-XSS-Protection

Zakázáný filtr
X-XSS-Protection: 0;
Ochrana XSS je aktivována, prohlížeč se bude snažit stránku čistit a opravit
X-XSS-Protection: 1;
Ochrana XSS je aktivována, prohlížeč při útoku stránku nezobrazí
X-XSS-Protection: 1; mode=block
Ochrana XSS je aktivována, prohlížeč reportuje porušení pravidel
X-XSS-Protection: 1; report=<reporting-uri>

Prohlížeč neblokuje stránku, ale pokusí se ji vyčistit a opravit. Současně provede reporting útoku. Reportování lze využít pouze u Chrome a prohlížečích postavených na jádru WebKit. Data potenciálních XSS útoků jsou odesílány v JSON formátu na uvedenou adresu.

Nastavení X-XSS-Protection

.htaccess
# X-XSS-Protection settings
Header set X-XSS-Protection "1; mode=block"
Reportování na doménu
Header set X-XSS-Protection "1; report=https://domenaxyz.cz/report"
Nginx
add_header X-XSS-Protection "1; mode=block";

Potenciální chyby v nastavení

X-XSS-Protection "0; mode=block" Chybná konfigurace. 0 zakáže ochranu, avšak Chrome zachová výchozí ochranu XSS.
X-XSS-Protection "1 mode=block" Informace musí být odděleny středníkem. XSS bude aktivováno, "mode=block" bude považováno za neplatné.

Chyba Error parsing header X-XSS-Protection: 1;mode=block, 1; mode=block: expected semicolon at character position 12. The default protections will be applied. Chyba zobrazená v Developer Console (Chrome). Server již posílá hlavičku X-XSS-Protection sám, zrušte vlastní nastavení.

Užitečné zdroje

Úspěšné odchycení XSS útoku
Chrome - ošetření XSS útoku

 

Lynt services s.r.o.

Sponzor hlavičky XSS

Jsme PPC agentura, ale víme, že k úspěchu je potřeba mít bezpečný a rychlý web.
Lynt services s.r.o.
https://lynt.cz