![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 17 Dołączył: 23.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Temat pewnie nie raz był poruszany, ale pomyślałem, żeby to wszystko zgromadzić w tym jednym miejscu. Otóż tak jak w temacie, chodzi o różne sposoby aby zabezpieczyć się przed ponownym wykonaniem akcji wysyłania formularzy (zwykle przez użycie przycisków odśwież i wstecz w panelu nawigacyjnym przeglądarki). Dla przykładu, gdy w przeglądarce firefox klikniemy na przycisk wstecz, wyskoczy pytanie, czy ponownie wysłać dane POSTDATA. Aby poprzednia strona się załadowała, trzeba odpowiedzieć twierdząco, no i w tym czasie następuje to co nie powinno i jeśli nie zareagujemy odpowiednio na ten proceder, powiedzmy w bazie danych znajdą się zduplikowane dane lub jeśli komuś sprawia to zabawę wstawi masę nie potrzebnych wpisów. Drugim przykładem może też być odświeżanie strony po wysłaniu formularza, co też może być powodem duplikowania danych. Już nie wspomnę jakie szkody mogą wyrządzić różne automaty stworzone do tego typu celów... Sposobów na zabezpieczenie się przed tym jest wiele, czy to przekierowania, czy nadawanie specjalnych jednorazowych identyfikatorów na daną akcję, pragnę jednak, aby każdy z was w miare możliwości przedstawił swoje obserwacje i doświadczenia w tym kierunku, a każdy zainteresowany tym tematem mógłby znaleźć coś dla siebie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Serdecznie pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat W takim wypadku token synchronizujacy napewno nie moze byc uzyty. A niby dlaczego token miałby być zły? To jest najbardziej sensowne wyjście... Przecież napisałem, że przy utworzeniu formularza generujesz token, zapisujesz go w sesji i dodajesz go jako ukryte pole. Użytkownik wysyła ten formularz i dzieje się tak: - sprawdzamy token - zgadza się - wykonujemy modyfikacje danych - zmieniamy/usuwamy token Użytkownik naciska odśwież: - sprawdzamy token - token jest inny/nie ma tokenu - wyrzucamy błąd Cytat Dla kazdego typu sytuacji jednak sa rozne inne sposoby, do rejestracji inny, do klikania na link inny, itp. itd. Zdziwiłbyś się, jakim elastycznym narzędziem jest token synchronizujący. Ochrona przed duplikacją danych nie jest jego jedynym zastosowaniem... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 21:46 |