Zmienne nazwy pól
Ostatnie i najbardziej rozbudowane rozwiązanie. Wyścig z hackerami jest bardzo trudny. Osoby, które się tym zajmują mają niezwykłą zdolność do szybkiego reagowania i są bardzo kreatywnie. Dlatego właśnie powstają nowe, różne ataki. Żadne z prezentowanych rozwiązań nie zabezpieczy nas w 100%. Ale każde z nich zmniejsza szansę wystąpienia takiego ataku. Im tych zabezpieczeń jest więcej tym formularz jest bezpieczniejszy. Te rozwiązanie łączy w sobie prawie wszystkie które omówione były wcześniej. Do formularza przekazywany jest stempel czasowy podwójnie szyfrowany. Dodatkowo dodawane jest nowe pole, którego wartość jest zwiększana w JavaScript. Takie zwiększanie już znamy. Co w tym nadzwyczajnego? Otóż nazwa tego pola jest zmienna i pochodzi z pierwszego szyfrowania daty. Czyli algorytm można uprościć do 3 kroków. Na początku szyfrujemy datę. Następnie tworzymy nowe pole formularzu, którego nazwa jest wynikiem tego szyfrowania. Na koniec całość szyfrujemy ponownie i zapisujemy jako datę. Podczas walidacji cały proces odwracamy, czyli najpierw raz deszyfrujemy wartość znanego pola. Otrzymujemy w ten sposób nazwę pola, które było zwiększane w JavaScript. Ponowne deszyfrowanie tej samej wartści zwróci datę wyświetlenia stempla, co pozwoli określić czas życia formularza. Taka kombinacja jest znacznie trudniejsza do rozgryzienia. Można ją jeszcze dodatkowo rozbudowywać poprzez na przykład porównywanie czasu z JavaScript z różnicą daty stempla. Jego największą zaletą jest z jednej storny prostota implementacji a z drugiej stopień skomplikowania na front. Dzięki wykorzystaniu AES pole za każdym razem będzie się nazywać inaczej przez co nie ma możliwości złapać się za to na front.
Wszystkie formularze