2010-09-27 16 views
23

Czy ktoś może to potwierdzić: czy w formularzu zgłoszeniowym muszę podać zarówno token CSRF, jak i Captcha, czy też dwaj mniej lub bardziej obsługują tę samą funkcję (jedna może być używana zamiast drugiej)?Czy potrzebne są oba tokeny csrf i captcha?

+0

To jest dobre pytanie, to jest podstawa tego, czym jest CSRF. – rook

Odpowiedz

21

Zamiast znacznika CSRF można użyć captcha. Jest to opisane w OWASP CSRF Prevention Guide. Captcha jest uważany za silniejszą formę zapobiegania CSRF niż sprawdzanie tokena lub referera, ponieważ nie można go ominąć za pomocą XSS.

+0

+1. ** potrzebujesz ** tokenu CSRF, jeśli nie wyświetlasz obrazu Captcha w formularzu (na przykład, jeśli zezwolisz zalogowanym użytkownikom na wysyłanie bez konieczności captcha) ... – ircmaxell

+0

@ircmaxell dobrze tak, myślałem, że to było ukryty. – rook

+0

świetne informacje, dzięki wszystkim, którzy odpowiedzieli i skomentowali. – jblue

0

Tak, myliłem się. Zarówno captcha, jak i token są związane z sesją.

Jednak nadal nie widzę sensu w tym pytaniu.
Nie można używać CAPTCHA dla każdego formularza na stronie. To doprowadzi użytkowników do szaleństwa.
Zatem, dlaczego nie mieć tokena dla każdej formy domyślnie i CAPTCHA dla wybranych?

+2

Wymaganie interaktywnego wprowadzania danych przez użytkownika zapobiega XSRF; Ponieważ captchas wymaga interakcyjnego wprowadzania danych przez użytkownika, można ich użyć do zapobiegania XSRF, tak jak tokeny. – erickson

Powiązane problemy