Što radi X-XSS-Protection?

X-XSS-Protection je sigurnosno zaglavlje koje postoji od verzije 4 Google Chromea. Osmišljen je kako bi omogućio alat koji provjerava sadržaj web-mjesta za odraženo skriptiranje na više stranica. Svi glavni preglednici sada su povukli podršku za zaglavlje jer je na kraju unijelo sigurnosne propuste. Preporučljivo je da uopće ne postavljate zaglavlje i umjesto toga konfigurirate jaku politiku sigurnosti sadržaja.

Savjet: Cross-Site Scripting općenito se skraćuje na akronim "XSS".

Reflected cross-site scripting je klasa XSS ranjivosti gdje je eksploatacija izravno kodirana u URL-u i utječe samo na korisnika koji posjeti URL. Odraženi XSS je rizik kada web stranica prikazuje podatke s URL-a. Na primjer, ako vam web-trgovina dopušta traženje proizvoda, možda ima URL koji izgleda ovako „website.com/search? termin=dar" i na stranici uključite riječ "dar". Problem počinje ako netko stavi JavaScript u URL, ako nije ispravno saniran, ovaj bi se JavaScript mogao izvršiti, a ne ispisati na zaslon kako bi trebao biti. Ako bi napadač mogao prevariti korisnika da klikne vezu s ovom vrstom XSS tereta, možda će moći učiniti stvari kao što je preuzimanje njihove sesije.

X-XSS-Protection je namijenjen otkrivanju i sprječavanju ove vrste napada. Nažalost, s vremenom je pronađen niz zaobilaznica, pa čak i ranjivosti u načinu rada sustava. Ove ranjivosti značile su da bi implementacija zaglavlja X-XSS-Protection uvela ranjivost skriptiranja na više lokacija na inače sigurnoj web stranici.

Radi zaštite od toga, uz razumijevanje da zaglavlje Pravila sigurnosti sadržaja, općenito skraćeno na "CSP", uključuje funkciju za zamjenu, programeri preglednika odlučili su povući značajka. Većina preglednika, uključujući Chrome, Opera i Edge, ili je uklonila podršku ili je u slučaju Firefoxa nikada nije implementirala. Preporuča se da web-mjesta onemoguće zaglavlje kako bi zaštitili one korisnike koji još uvijek koriste stare preglednike s omogućenom značajkom.

X-XSS-Protection može se zamijeniti postavkom "nesigurno-inline" u zaglavlju CSP-a. Mogućnost omogućavanja ove postavke može zahtijevati dosta posla, ovisno o web-mjestu, jer to znači da sav JavaScript mora biti u vanjskim skriptama i ne može se izravno uključiti u HTML.