CSRF lub Cross-Site Request Forgery to luka w zabezpieczeniach witryny internetowej, w której atakujący może spowodować akcję w sesji ofiary na innej stronie internetowej. Jedną z rzeczy, które sprawiają, że CSRF jest tak dużym ryzykiem, jest to, że nie wymaga on nawet interakcji użytkownika, wystarczy, że ofiara wyświetli stronę internetową zawierającą exploit.
Wskazówka: CSRF jest zwykle wymawiane litera po literze lub jako „surf na morzu”.
Jak działa atak CSRF?
Atak polega na tym, że atakujący tworzy stronę internetową, która ma metodę wysyłania żądania na innej stronie internetowej. Może to wymagać interakcji użytkownika, na przykład skłonienia go do naciśnięcia przycisku, ale może również być pozbawione interakcji. W JavaScript istnieją sposoby na automatyczne wykonanie akcji. Na przykład obraz zero na zero pikseli nie będzie widoczny dla użytkownika, ale można go skonfigurować tak, aby jego „src” wysyłało żądanie do innej witryny.
JavaScript jest językiem po stronie klienta, co oznacza, że kod JavaScript jest uruchamiany w przeglądarce, a nie na serwerze WWW. Dzięki temu komputer, który wysyła żądanie CSRF, jest w rzeczywistości komputerem ofiary. Niestety oznacza to, że żądanie jest wysyłane ze wszystkimi uprawnieniami, jakie posiada użytkownik. Gdy atakująca strona internetowa nakłoni ofiarę do złożenia żądania CSRF, żądanie jest zasadniczo nie do odróżnienia od użytkownika, który normalnie wysyła żądanie.
CSRF jest przykładem „ataku zdezorientowanego zastępcy” na przeglądarkę internetową, ponieważ przeglądarka jest oszukiwana do korzystania z jej uprawnień przez atakującego bez tych uprawnień. Te uprawnienia to Twoja sesja i tokeny uwierzytelniające do docelowej witryny internetowej. Twoja przeglądarka automatycznie dołącza te dane do każdego żądania.
Ataki CSRF są dość skomplikowane do zorganizowania. Przede wszystkim docelowa witryna musi mieć formularz lub adres URL, który ma skutki uboczne, takie jak usunięcie konta. Atakujący musi następnie stworzyć żądanie, aby wykonać żądaną akcję. Wreszcie, atakujący musi skłonić ofiarę do załadowania strony internetowej zawierającej exploit, gdy jest ona zalogowana na docelowej witrynie.
Aby zapobiec problemom CSRF, najlepszą rzeczą, jaką możesz zrobić, to dołączyć token CSRF. Token CSRF to losowo wygenerowany ciąg znaków, który jest ustawiany jako plik cookie, wartość musi być dołączona do każdej odpowiedzi wraz z nagłówkiem żądania, który zawiera wartość. Chociaż atak CSRF może zawierać plik cookie, nie ma możliwości określenia wartości tokena CSRF do ustawienia nagłówka, a więc atak zostanie odrzucony.