Prowadzisz firmową stronę, sklep internetowy albo serwis, do którego klienci się logują? Jeśli tak, możesz zetknąć się z zagrożeniem, jakim jest cross-site scripting. To jeden z najczęściej spotykanych sposobów ataku na aplikacje internetowe, a jednocześnie taki, który łatwo przeoczyć. Jego skutki bywają jednak poważne – z wyciekiem danych klientów i konsekwencjami tego zdarzenia włącznie. Czy da się przed tym obronić? Wyjaśniamy.
Cross site scripting – co to jest?
Cross site scripting (XSS) to atak, który polega na „wstrzyknięciu” złośliwego skryptu napisanego zwykle w JavaScript do kodu zaufanej strony internetowej. Skrypt ten następnie wykonuje się w przeglądarce odwiedzającego ją użytkownika, co może prowadzić np. do przekierowania na fałszywą stronę czy przejęcia danych logowania.

Na czym polega największy problem z tym typem cyberprzestępstwa? Atakujący nie musi włamywać się na serwer w klasycznym rozumieniu. Wykorzystuje za to zaufanie, jakim klient darzy Twoją witrynę. Przeglądarka, widząc skrypt na znanej i pozornie bezpiecznej stronie, traktuje go jak część jej zawartości i uruchamia „bezrefleksyjnie”. W efekcie cyberprzestępca działa niejako „pod przykrywką” Twojej marki, a użytkownik nie ma pojęcia, że dzieje się coś niepokojącego.
Z perspektywy firmy jest to szczególnie groźne, ponieważ bezpośrednio uderza w klientów, a jednocześnie podważa reputację marki.
Sprawdź też: Atak man-in-the-middle: co to jest?
Jakie ryzyko biznesowe stwarza atak cross site scripting?
Atak cross site scripting w cyberbezpieczeństwie bywa traktowany jak problem czysto techniczny. Tymczasem najmocniej odczuwalne są jego skutki biznesowe – finansowo, prawnie i wizerunkowo.
Wyobraźmy sobie kilka scenariuszy, które są prawdopodobne, gdy atak dotknie witrynę firmy.
Klient loguje się do Twojego sklepu, a uruchomiony w tle złośliwy skrypt przejmuje jego sesję. W efekcie atakujący dostaje się na konto klienta bez znajomości hasła, a wraz z nim do danych adresowych, historii zamówień i informacji o płatnościach.
Skrypt podmienia treść strony albo przekierowuje klientów na łudząco podobną witrynę. Tam podają oni dane logowania prosto do rąk przestępcy. Wyciek tych informacji to ogromne zagrożenie! Co gorsza – mogą też dokonać zamówienia na fałszywej stronie, a odzyskanie utraconych pieniędzy może być wówczas niemożliwe.
Każdy taki incydent oznacza również wyzwania prawne – przede wszystkim obowiązek zgłoszenia naruszenia danych osobowych. Pojawia się też ryzyko nałożenia na firmę kar finansowych wynikających z przepisów RODO – to mandaty, które potrafią sięgać naprawdę wysokich kwot. Do tego dochodzi równie bolesny problem wizerunkowy, czyli utrata zaufania klientów. To powód, dla którego warto zrozumieć, jak chronić się przed atakami cross site scripting.
Czy istnieją skuteczne sposoby na zabezpieczenie przed atakiem XSS?
Przed atakami cross site scripting można się chronić. Choć wprawdzie nie ma jednego „magicznego” rozwiązania, połączenie kilku dobrych praktyk pozwala bardzo wyraźnie ograniczyć ryzyko. Ochrona opiera się przede wszystkim na tym, jak kod strony czy sklepu online przyjmuje i wyświetla dane.

Podstawą jest walidacja i filtrowanie danych wejściowych – aplikacja (czyli np. system webowy, który przyjmuje dane od użytkownika strony) powinna dokładnie sprawdzać, co użytkownik wpisuje w formularze, i odrzucać wszystko, co wygląda jak kod, a nie zwykły tekst.
Równie istotne jest właściwe kodowanie danych wyjściowych, czyli wyświetlanie treści tak, by przeglądarka potraktowała je jako tekst, a nie polecenie do wykonania.
Warto też wdrożyć kilka dodatkowych zabezpieczeń. Są to:
Content Security Policy (CSP) – nagłówek, który określa, skąd strona może ładować skrypty, i blokuje te z nieznanych źródeł;
flagi HttpOnly i Secure dla plików cookie – utrudniają przejęcie sesji nawet wtedy, gdy skrypt zdoła się uruchomić;
regularna aktualizacja oprogramowania – wiele ataków cross site scripting wykorzystuje znane luki w systemach CMS (zwłaszcza w WordPressie) i wtyczkach, na które dawno wydano poprawki;
wykonywanie regularnych testów i audytów bezpieczeństwa – pozwalają one wychwycić problemy i luki, zanim zrobią to przestępcy.
Sporą część tej pracy biorą dziś na siebie nowoczesne frameworki, które domyślnie zabezpieczają wyświetlane dane. Trzeba jednak pamiętać, że żaden mechanizm nie zwalnia z czujności – o bezpieczeństwo trzeba dbać nieustannie, a nie tylko od czasu do czasu.

Czy wiesz, że… znaczna część ochrony przed XSS zaczyna się już na poziomie hostingu? Np. hosting stron www od NQ.pl obejmuje zaporę WAF (Web Application Firewall), która analizuje ruch i blokuje typowe próby ataku, zanim dotrą one do witryny. Natomiast serwery LiteSpeed, regularnie aktualizowane środowisko i automatyczne kopie zapasowe sprawiają, że w razie incydentu szybciej wrócisz do działania.
Chcesz mieć pewność, że Twoja strona i dane klientów są dobrze chronione, również przed atakami XSS? Skontaktuj się z nami, a pomożemy dobrać rozwiązanie dopasowane do Twojego biznesu.


