Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sql injection
Forum PHP.pl > Forum > Bazy danych > MySQL
scottx
Wikipedia
Cytat
Teoretycznie w ten sposób można przekazać każde zapytanie SQL, włącznie z wykonaniem kilku zapytań naraz. Jeżeli w powyższym przykładzie użytkownik przekaże

x';DROP TABLE użytkownicy; SELECT * FROM data WHERE nazwa LIKE '%
to całe zapytanie przybierze postać

SELECT * FROM uzytkownicy WHERE uzytkownik = 'x';DROP TABLE uzytkownicy; SELECT * FROM dane WHERE nazwa LIKE '%'
co zaowocuje usunięciem tabeli "uzytkownicy" i pobraniem wszystkich danych z tabeli "dane".

Czy możliwe jest zagnieżdżenie paru zapytań na raz w jednym zapytaniu do bazy? Tu chyba jest bład? Mylę sie? proszę o odpowiedź
SongoQ
Nie mozna wykonuje sie zawsze 1 zapytanie. Ogolenie temat ten byl wielokrotnie poruszany szukaj.
flv
Nieprawda, baza danych(przynajmniej MySQL) nie robi żadnych ograniczeń co do ilości zapytań wykonywanych "na raz", ograniczenia są jedynie ze strony języków programowania(np. PHP), zresztą to i tak żadne ograniczenia bo korzystając z modułu mysqli(w przypadku php) można wykonywać kilka zapytań za jednym zamachem.
SongoQ
Usp, male niedomowienie jesli chodzi o wykorzystanie przez php tak wlasnie jest. A sama baza oczywiscie zaklada ze jest wiele zapytan tak jak pisal flv
scottx
  1. <?Php
  2. $id=$_get["id"];
  3. $result = mysql_query("SELECT * FROM tabela WHERE `id`=$id ");
  4. ?>

Czy możliwe jest tu wstrzyknięcie kodu usuwajacego tabelę? IMHO nie. Jak już to jakoś tak
strona.php?id=1; Drop table tabela ale to nie zadziała
flv
Tak jak pisałem, nie jest to możliwe, wikipedia ma to do siebie że jest rozwijana przez użytkowników i nie we wszystkie informacje zawarte tam trzeba wierzyć.
scottx
Dzięki za odpowiedź snitch.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.