[php] czy ktos moze skasowac baze z pola SZUKAJ ?

0

Witam.
Sluchajcie, czy jak robie w serwisie pole szukaj ?
To czy jesli go nie zabezpiecze jest mozliwosc ze ktos
moglby skasowac wyczyscici mi baze danych ?

Jaka to technika , jak to zrobic chcialbym to przetestowac na swojej
niezabezpieczonej bazie specjalnie w tym celu.

Ja to mysle ze jak jest instrukcja SQL do szukania:

sql = 'SELECT * FROM base WHERE $data';

czyli moge dac w $data wpisac $data = 0 '; alter table;

czy jakos tak to sie robi ?

0

To sie nazywa sql injection

0

wiem,wiem ale jak sformowac moje INJECTION zeby wyczyscic bze danych?

0

Jeżeli baza będzie obsługiwała rozdzielanie poleceń w jednym wierszu przez ; to możesz tak zrobić. MySQL 3 i 4 tego nie umieją.

A gdybyś kiedyś wykonywał np. DELETE FROM tabela WHERE dane='$dane' to spróbuj jako $dane wpisać 12' OR 0=0 - na moje oko to wyczyści wszystko :)

0
Ktos napisał(a)

Jeżeli baza będzie obsługiwała rozdzielanie poleceń w jednym wierszu przez ; to możesz tak zrobić. MySQL 3 i 4 tego nie umieją.

A gdybyś kiedyś wykonywał np. DELETE FROM tabela WHERE dane='$dane' to spróbuj jako $dane wpisać 12' OR 0=0 - na moje oko to wyczyści wszystko :)

  1. SQL 4 to tez potrafi :P

  2. przy wpisaniu 12' OR 0=0 standardowe ustawienia serwera zamienia to na 12' OR 0=0 (bo wiekszosc serwerow na magic_quotes ustawione) wiec z zapytaniem sie nic nie stanie

  3. po co utrudniac sobie zycie i kombinowac??
    http://pear.php.net/package/DB/
    Dajesz pozniej:

$wynik = $dbh->getAll("SELECT * FROM tabela WHERE pole = ?", array($fraza));

I nie obchodzi Cie juz nic, zadne "indżekszyn", czy podrzedni "chakerzy" :D

0

Zapraszam do lektury:
http://www.webinside.pl/php/artykuly/197
na pewno się przyda

0
desperat napisał(a)
  1. przy wpisaniu 12' OR 0=0 standardowe ustawienia serwera zamienia to na 12' OR 0=0 (bo wiekszosc serwerow na magic_quotes ustawione) wiec z zapytaniem sie nic nie stanie

większość serwerów ma tą funkcję wyłączoną, ba magic_quotes jest niepolecane i dyskryminowane

ale 12' OR 0=0 faktycznie nie zadziała z innego względu że wystąpi błąd w zapytaniu bo wyjdzie:

DELETE FROM tabela WHERE dane='12' OR 0=0'

musiałoby być np 12' OR 0=0;#--- żeby ostatni apostrof zignorować

1 użytkowników online, w tym zalogowanych: 0, gości: 1