Remigiusz Siedlec

Remigiusz Siedlec Informatyk BPH BH
S.A

Temat: zend_form & refresh page

Hej, macie pomysł jak zabezpieczyć się w "Zend" przed ponownym wysłaniem danych formularza?? poprzez odświeżenie strony
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: zend_form & refresh page

captcha albo dodaj ukryte pole z jakims hashem i validuj je
Przemek Szalko

Przemek Szalko iOS Developer + Full
Stack Developer

Temat: zend_form & refresh page

Możesz po wykonaniu akcji na formularzu po prostu przekierować użytkownika na inną stronę. Wtedy odpadną przypadki gdy ktoś wysyła ponownie formularz tylko odświeżając stronę.

Pozostanie jeszcze przypadek gdy ktoś kliknie wstecz do miejsca gdzie wysyłał formularz, i wtedy wyśle go ponownie. Te przypadki załatwisz tak jak mówi Łukasz - pole z ukrytym hashem.
Piotr Rybałtowski

Piotr Rybałtowski Programista PHP,
Symfony, Zend
Expressive, Node.js

Temat: zend_form & refresh page

Generalnie dobrym sposobem czyszczenia POST jest przekierowanie statusem 303 See Other - może przekierować na tę samą stronę albo na inną.

W Zend jeśli w kontrolerze przekierowujesz przez _redirect(), to na drugim parametrze wystarczy podać array('code' => 303).

Wtedy żadne refresh/back/forward drugi raz danych nie wyśle. :)
Przemysław Sobczuk

Przemysław Sobczuk Software Developer,
Team Leader

Temat: zend_form & refresh page

Odradzam stosowanie wszelkiej maści tokenów do tego typu zabezpieczeń. Tokeny sprawdzą się jako obrona przed CSRF'em.
Z tokenami jest tak, że wszystko działa fajnie do czasu aż nie otworzy się strony w kilku zakładkach a jest to dość powszechna praktyka. Można co prawda przechowywać je w tablicy ale każde wyświetlenie nowego formularza zwiększa niepotrzebnie jej wielkość.

Polecam rozwiązanie Piotrka.

psPrzemysław Sobczuk edytował(a) ten post dnia 13.04.10 o godzinie 10:16



Wyślij zaproszenie do