Cross-site request forgery (CSRF)

Bardzo niebezpieczny typ ataku, polegający na wykorzystywaniu uprawnień osoby atakowanej. Polega on na przesłaniu osobie posiadającej uprawnienia do wykonania danej akcji (najczęściej administrator), linka który daną akcje wykonuję. Posłużmy się przykładem do opisania tego typu ataku: administrator do nadania przywileju administratora musi kliknąć w link przy danym użytkowniku nadający te uprawnienia, internauta przygotował odpowiedni link, który wygląda w następujący sposób:

http://moje_forum.com/index.php?action=update&user=Kowalski&entitlements=admin

Oczywiście próba wpisania tego adresu przez zwykłego usera zakończy się błędem (brak uprawnień), ale gdy zrobi to administrator serwisu, użytkownikowi o nicku Nowak zostaną nadane uprawnienia administratora. Nie jest przy tym wymagane kliknięcie linku przez admina, wystarczy jako adres obrazka podać ten link, i zadbać żeby administrator odwiedził odpowiednią stronę.

Aby przed tym atakiem skutecznie się zabezpieczyć należy dokładnie sprawdzać dane, przy wpisywaniu linku do obrazka sprawdzać czy rzeczywiście on do niego prowadzi, filtrować dane i nie pozwalać na wpisywanie linków powiązanych z naszym serwisem. Radykalnym, aczkolwiek bardzo skutecznym rozwiązaniem jest wyłączenia BBCode (w przypadku forów dyskusyjnych). Dobrym pomysłem jest stosowanie metody POST (zamiast GET) dla ważnych funkcji panelu administracyjnego.

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code
 

This site uses Akismet to reduce spam. Learn how your comment data is processed.