Depends . Jeśli atakujący nie jest MITM, w tym sensie, że nie może podsłuchiwać ruchu między aplikacją internetową a serwerem API, wystarczy jeden token CSRF dla całej sesji.
Zakładając, że chronisz wrażliwe operacje również po stronie serwera (np. Zezwalaj na dostęp do zasobów tylko właścicielowi zasobu, np. "Usuń moje konto", itp.) Token zapewni, że przeglądarka wysyłająca żądanie jest legalna, uwierzytelniona przeglądarka użytkownika. O to wszystko powinno się martwić, tak myślę.
Z drugiej strony, jeśli osoba atakująca jest w stanie spojrzeć na niezabezpieczony ruch między aplikacją internetową i interfejsem API, może zdobyć token CSRF i identyfikator sesji i zrobić zło w przejrzysty sposób. W takim przypadku przyznanie, używanie, a następnie odrzucenie tokena dla każdego żądania (POST lub innego rodzaju, który wykonuje wrażliwą operację) tylko sprawia, że ich praca jest nieco trudniejsza, ale wciąż jesteś skazany na zagładę.
Moje 2 centów ...
Co używasz tokena dla? Zakładając, że używasz go do czegoś innego niż zapobieganie XSS, trudno powiedzieć, czy będzie on ** "dobry" ** wystarczający dla twojego scenariusza. – Sam
@Sam token dla xss? – itachi
Token CSRF @itachi Laravel służy do zapobiegania żądaniom między lokacjami (zazwyczaj XSS).Jest token zapisany w sesji witryny i wysyłany przy każdym przesłaniu formularza, więc formularz musi zostać przesłany ze strony internetowej z sesją, aby sesja była właściwa ... niż fałszowanie żądania za pomocą skryptów cross-site. – Sam