Cross-site request forgery (w skrócie CSRF lub XSRF) – metoda ataku na serwis internetowy, która często (m.in. na skutek jednoczesnego wykorzystania) mylona jest z cross-site scripting (XSS) bądź jest uznawana za jej podzbiór. Ofiarami CSRF stają się użytkownicy nieświadomie przesyłający do serwera żądania spreparowane przez osoby o wrogich zamiarach. W przeciwieństwie do XSS ataki te nie są wymierzone w strony internetowe i nie muszą powodować zmiany ich treści. Celem crackera jest wykorzystanie uprawnień ofiary do wykonania operacji w przeciwnym razie wymagających jej zgody. Błąd typu CSRF dotyczy również serwerów FTP.
Atak ma na celu skłonić użytkownika zalogowanego do serwisu internetowego do tego, aby uruchomił on odnośnik, którego otwarcie wykona w owym serwisie akcję, do której atakujący nie miałby w przeciwnym razie dostępu. Na przykład, użytkowniczka Małgosia, na stałe zalogowana do forum internetowego, może w pewnym momencie otworzyć spreparowany przez Jasia link, który zmieni jej dane kontaktowe albo usunie wątek dyskusji. Jako link może również posłużyć obrazek, którego adres został odpowiednio przygotowany, a konsekwencje wykonanej akcji mogą być znacznie poważniejsze.
Poniższe cechy charakteryzują atak CSRF:
Szczególnie podatne na ten atak są aplikacje webowe, które wykonują żądania przesłane przez zalogowanych użytkowników bez autoryzacji konkretnej akcji. Osoba uwierzytelniona na podstawie ciasteczka zapisanego w przeglądarce może nieświadomie wysłać żądanie HTTP do serwera, który jej ufa i wykona niepożądaną akcję w jej imieniu.
Na ataki CSRF narażeni byli użytkownicy serwisów takich jak Digg, Amazon.com czy Google AdSense.
Zarówno użytkownicy, jak i twórcy serwisów internetowych mogą aktywnie zapobiegać atakom typu CSRF.
Powodzenie ataku wymaga spełnienia dwóch warunków:
W celu ograniczenia pierwszego źródła zagrożenia należy wylogowywać się z serwisów internetowych za każdym razem, gdy skończy się z nich korzystać oraz unikać opcji zapamiętywania sesji na komputerze. Szczególną uwagę należy na to zwracać przy korzystaniu ze stron, których obsługa wiąże się ze znacznymi konsekwencjami (m.in. serwisy aukcyjne i bankowości elektronicznej).
Jeremiah Grossman, ekspert ds. bezpieczeństwa firmy Whitehat Security, korzysta z osobnej przeglądarki do pracy z serwisem bankowości elektronicznej. Przed zalogowaniem się na stronę banku zamyka „codzienną” przeglądarkę i uruchamia osobną, której używa wyłącznie do tego celu.
Kliknięcie w link nie jest warunkiem koniecznym do tego, aby przeglądarka przesłała do serwera niechciane żądanie. Atakujący może je „ukryć” w adresie obrazka, zagnieżdżonej ramki bądź przy pomocy skryptu osadzonego w stronie www. Dlatego, będąc zalogowanym do serwisów internetowych, należy unikać otwierania wszelkich innych stron.
Istnieje cały szereg metod, które utrudniają przeprowadzenie skutecznego ataku CSRF.
Poniższe metody zapewniają jedynie prowizoryczne zabezpieczenie.