Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zabezpieczenie przed WSTECZ i ODŚWIEŻ, w formularzu...
Kshyhoo
post
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Witam po raz kolejny. Chciałbym uzyskać pomoc w kwestii zabezpieczenia danych w formularzu przed przeładowaniem i przyciskiem wstecz (wiem, że nie da się zablokować całkowicie). Znalazłem na to 3 sposoby - cookie, sesje i nagłówek. Niestety, nie umiem tego połączyć z moim wielostopniowym formularzem... Pomoże ktoś mądry?
  1. <?php
  2. if (isset($_POST['krok']) && $_POST['krok'] == "1") {
  3.  
  4. // tu kontrola wypełnienia w js
  5.  
  6. echo "<center><form name='generator' action='".basename($_SERVER['PHP_SELF'])."' method='POST' onSubmit='return testuja(this);'>";
  7.  
  8. echo "<input type='hidden' name='krok' value='2'>\n";
  9. echo "<input type='submit' name='dalej' value='Idź dalej'></form>";
  10.  
  11. } elseif (isset($_POST['krok']) && $_POST['krok'] == "2") {
  12.  
  13. echo "<center><form name='generator' action='".basename($_SERVER['PHP_SELF'])."' method='POST' onSubmit='return checkRadios(this);'>";
  14.  
  15. // tu kontrola wypełnienia w js
  16.  
  17. echo "<input type='hidden' name='krok' value='3'>";
  18. echo "<input type='submit' name='dalej' value='Idź dalej'></form>";
  19.  
  20. } elseif (isset($_POST['krok']) && $_POST['krok'] == "3") {
  21.  
  22. echo "<center><form name='generator' action='".basename($_SERVER['PHP_SELF'])."' method='POST' onSubmit='return testujb(this);'>";
  23.  
  24. // tu kontrola wypełnienia w js
  25.  
  26. echo "<input type='hidden' name='krok' value='4'>\n";  
  27. echo "<input type='submit' name='dalej' value='Idź dalej'></form>";
  28.  
  29. } else {
  30.  
  31. echo "<hr class='hr' /><form name='generator' action='".basename($_SERVER['PHP_SELF'])."' method='POST'>";
  32.  
  33. echo "<input type='hidden' name='krok' value='1'>\n";  
  34. echo "<input type='submit' name='dalej' value='Idź dalej'></form>";
  35.  
  36. }
  37. ?>


Ten post edytował Kshyhoo 4.07.2009, 21:52:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
zgłosiłem sama znajomość sesji nie wystarczy

Owszem, wystarczy. Gdybyś poznał sesje, byś także poczytał o ataku zwanym CSRF i o metodach przed zabezpieczeniem przed nim. Jest tam coś takiego zwanego tokenem, jeśli będziesz dla każdego żądania generował unikalny, to będziesz miał zabezpieczenie także przed wtecz/dalej.

Cytat
@erix, Ty mnie chyba naprawdę [cenzura] nie lubisz?

Nie lubię lenistwa.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Cytat(erix @ 6.07.2009, 22:23:48 ) *
Nie lubię lenistwa.

Kiedyś mieliśmy okazję na ten temat rozmawiać. Odpuść sobie te pieprzenie, bo lenistwa nie może mi nikt zarzucić.

Co co "coś takiego zwanego tokenem, jeśli będziesz dla każdego żądania generował unikalny", to robiłem:
  1. <?php
  2. <input type='hidden' name='id' value='".uniqid()."'>
  3. ?>

i:
  1. <?php
  2. if (isset($dalej) and $_POST["id"]==$_SESSION["id"]) {
  3. echo "";
  4. }
  5. if (isset($dalej) and $_POST["id"]<>$_SESSION["id"]) {
  6. $_SESSION["id"] = $_POST["id"];
  7. echo $dalej;
  8. }
  9. ?>

i ODŚWIEŻ owszem, na ale WSTECZ nie działało, bo przecież i tak był ten sam id...

Sądząc po linku, który wkleiłem wcześniej, to jest spory problem i dla profesjonalistów.
Go to the top of the page
+Quote Post

Posty w temacie
- Kshyhoo   [PHP] Zabezpieczenie przed WSTECZ i ODŚWIEŻ   4.07.2009, 20:53:00
- - erix   A czemu nie korzystasz z sesji?   4.07.2009, 21:33:57
- - Kshyhoo   Eh, jeżeli chodzi o pojedynczy formularz, umiem to...   4.07.2009, 21:39:11
- - bemol   a czemu nie robisz sobie na $_GET i nie lecis...   5.07.2009, 09:38:19
|- - Kshyhoo   Cytat(bemol @ 5.07.2009, 10:38:19 ) a...   5.07.2009, 10:00:26
- - bemol   [PHP] pobierz, plaintext <?phpswitch ($_GET...   5.07.2009, 11:19:43
- - Kshyhoo   Właśnie zacząłem przerabiać na switch. Na razie be...   5.07.2009, 11:30:36
- - bemol   dodaj w każdym 'case' : 1. [PHP] pobi...   5.07.2009, 11:51:20
- - Kshyhoo   Zrobiłem tak: [PHP] pobierz, plaintext <?phpcas...   5.07.2009, 12:12:21
- - Pawel_W   [PHP] pobierz, plaintext <?phpcase 4:          ...   5.07.2009, 12:53:43
- - Kshyhoo   Efekt dokładnie taki sam... Problem jest w tym, że...   6.07.2009, 19:47:40
- - erix   Dlaczego wszystkie dane przepychasz przez użytkown...   6.07.2009, 19:57:51
- - Kshyhoo   Jak dotąd nie znalazłem sposobu na efektywne zabez...   6.07.2009, 21:12:40
- - erix   Cytatzgłosiłem sama znajomość sesji nie wystarczy ...   6.07.2009, 21:23:48
|- - Kshyhoo   Cytat(erix @ 6.07.2009, 22:23:48 ) Ni...   6.07.2009, 21:43:36
- - erix   Bo przed wygenerowaniem tokena musisz go wrzucić d...   6.07.2009, 21:52:35
|- - Kshyhoo   Opierałem się na tym artykule, Cytat(erix ...   6.07.2009, 22:01:48
- - erix   CytatOpierałem się na tym artykule, Wątpię, aby kt...   6.07.2009, 22:15:04
|- - Kshyhoo   Cytat(erix @ 6.07.2009, 23:15:04 ) A ...   6.07.2009, 22:21:09
- - erix   Bo przeglądarka wczytuje stronę z pamięci. Jeśli c...   7.07.2009, 22:18:48


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 22:32