2015-05-29 18 views
5

Czy powinienem mieć krótki okres ważności dla mojego tokenu CSRF, czy mogę go mieć na czas sesji?Jak długo powinno trwać życie tokena CSRF?

+0

jeśli trwa życie sesji, a następnie, jeśli zostanie skradziony, to sprawa być nadużywane do życie tej sesji ... powinno to być jednorazowe użycie –

+0

Nie @MarcB. Cechą wyróżniającą token CSRF jest to, że nie jest to plik cookie, a więc nie jest wysyłany automatycznie na każde żądanie. Czas trwania sesji jest w porządku. [Ta odpowiedź] (http://stackoverflow.com/a/30539335/721263) poniżej sprawdziła się. –

+1

Powiązane pytanie: [ochrona CSRF: czy musimy generować token dla każdego formularza?] (Http://stackoverflow.com/q/8655817/53114) – Gumbo

Odpowiedz

4

Token CSRF nie jest tokenem dostępu i nie ma takiego życia jak tokeny na okaziciela. Są generowane przy użyciu informacji o sesji.

csrf_token = HMAC(session_token, application_secret)

CSRF dodaje dodatkowe informacje na prośby, które pozwala zweryfikować żądania serwer pochodzi z autoryzowanego lokalizacji.

Wpływa tylko żądania, gdzie informacji autoryzacji jest wysyłany automatycznie przez przeglądarkę (cookie uwierzytelniania lub podstawowy/strawić schemacie)

+0

Nie muszą być związane z sesją. Może również dotyczyć pojedynczych zgłoszeń. –

+0

Dlaczego generowanie obejmuje informacje o sesji? Dlaczego nie użyć całkowicie losowej wartości? I to jest informacja o uwierzytelnieniu, a nie o autoryzacji. – Gumbo

+0

Tak, zachowaj ochronę identyfikatora sesji. Nie wystawiaj go niepotrzebnie. – SilverlightFox

Powiązane problemy