Czy konieczne jest stosowanie ochrony CSRF, gdy aplikacja opiera się na uwierzytelnianiu bezstanowym (przy użyciu czegoś takiego jak HMAC)?
Przykład:
Mamy jedną aplikację, stronę (w przeciwnym razie mamy do dołączania żeton na każdym linku:
<a href="...?token=xyz">...</a>
.Użytkownik uwierzytelnia się za pomocą
POST /auth
. Po pomyślnym uwierzytelnieniu serwer zwróci pewien token.Token będzie przechowywany za pośrednictwem JavaScript w jakiejś zmiennej wewnątrz aplikacji pojedynczej strony.
Ten token będzie używany do uzyskiwania dostępu do ograniczonych adresów URL, takich jak
/admin
.Token będzie zawsze przesyłany w nagłówkach HTTP.
NIE ma sesji HTTP ani plików cookie.
O ile rozumiem, nie powinno być (?!) możliwości stosowania ataków między witrynami, ponieważ przeglądarka nie przechowuje tokena, a co za tym idzie, nie może automatycznie wysłać go na serwer (tak by się stało, gdybyśmy korzystali z Cookies / Sesja).
Czy coś mi brakuje?