Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zapętlające się odświeżanie
SEM
post 1.08.2012, 15:00:29
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.08.2012

Ostrzeżenie: (0%)
-----


Witam
Mam problem z tym fragmentem kodu ogólnie wszystko działa. Rekord zostaje poprawnie usunięty, jednak nie wiem czemu ale strona zaczyna odświerzać się w nieskończoność. Próbowałem dodawać dodatkowe warunki w IF-ie, poźniej dodałem unset jednak po wykonaniu tego IFa strona nadal się zapętla. Byłbym wdzięczny za jakąs podpowiedz albo wytknięcie błedu.

  1. if(isset($_GET['edit'])) {
  2. mysql_query("DELETE FROM users WHERE id = ".$_GET['edit']."");
  3. unset($_GET['edit']);
  4. echo '<meta http-equiv="Refresh" content="0" />';
  5. }


Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
WebCM
post 1.08.2012, 15:16:18
Post #2





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Usuń 3 i 4 linijkę. W tym miejscu wyślij nagłówek, który przekieruje na właściwą stronę:
  1. header('Location: index.php');
W linii 2 nie zabezpieczasz zapytania przed atakiem SQL Injection. Zmienna $_GET['edit'] może zawierać wszystko, np. 1 OR 1=1 w wyniku czego zapytanie może przyjąć postać:
  1. DELETE FROM users WHERE id = 1 OR 1=1
Użyj mysql_real_escape_string albo mechanizmu podpinania dostępnego w bibliotekach MySQLi i PDO.

Ten post edytował WebCM 1.08.2012, 15:24:43


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
SEM
post 1.08.2012, 15:21:14
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.08.2012

Ostrzeżenie: (0%)
-----


Dzięki działa biggrin.gif

Co do zabezpieczenia to wiem o tym, ale tą zmienna tworzę wyciągając dane użytkownika z bazy danych (robię panel administracyjny). Więc nie ma tutaj żadnego pola tekstowego, czy w takim przypadku też to należy zabezpieczyć?
  1. <a href=\"panel.php?edit={$r['id']}\">Usuń</a>


Ten post edytował SEM 1.08.2012, 15:33:09
Go to the top of the page
+Quote Post
WebCM
post 1.08.2012, 15:43:23
Post #4





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Nigdy nie ufaj danym pochodzącym z zewnątrz. Równie dobrze można wpisać ten adres bezpośrednio do pola adresu. Jest jeszcze możliwy inny atak:
  1. <img src="panel.php?edit=1 OR 1=1">
Albo specjalnie przygotowana strona, która będzie wykonywać różne akcje (dodaj, usuń, edytuj) w twoim serwisie. Poczytaj na forum o sposobach zabezpieczenia przed atakiem CSRF.

Ten post edytował WebCM 1.08.2012, 15:43:39


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:08