ZAWWW-2st1.2-w10.tresc-1.0-Slajd13
Wprowadzenie tokenu synchronizującego
Klient HTTP może duplikować żądania poprzez wielokrotne wysłanie tego samego formularza lub może dokonywać nielegalnych prób bezpośredniego dostępu do zasobów z pominięciem ścieżki nawigacji. Praktycznie zawsze jesteśmy zainteresowani kontrolowaniem nadchodzących żądań, choćby w celu uniknięcia powielenia żądań klienta. Rozwiązaniem może być utworzenie pomocniczej klasy odpowiedzialnej za generowanie i porównywania unikalnych tokenów jednorazowego użytku. Po stronie aplikacji należy dodać logikę sprawdzającą, czy token przesłany przez użytkownika jest identyczny z tokenem zapamiętanym w sesji. W trakcie każdego żądania token przesłany przez klienta powinien być taki sam jak token przesłany klientowi przez serwer w poprzedniej odpowiedzi. Brak zgodności tokenów może wynikać z wielokrotnego przesłania formularza (w trakcie drugiego wysłania serwer oczekuje już na inny token) lub z powodu dostępu do zasobu przez niepoprawną ścieżkę (np. poprzez zakładkę w przeglądarce). Brak zgodności tokenów powinien być obsłużony za pomocą właściwej strony z komunikatem o zaistniałym błędzie. Unikalne tokeny są za zwyczaj generowane przez kontroler, choć można również dodać odpowiednią funkcjonalność bezpośrednio w widokach.