Proboje poznac zasade działania sql injection.. dzieki temu latwiej pozniej unikac pewnych bledow.
Mam kod:
xxx.php
<?
include \"otwieracz.php\";//laczymy sie z baza
$query = \"SELECT * from test WHERE (x = '$x') \";
print \"$query<BR>\"; ?>
teraz w przegladarce podaje:
http://localhost/sqlinjection/xxx.php?x=Imieno i wszystko ok print wywala mi na stronke:
SELECT * from test WHERE (x = 'Imie')
Teraz chcialem przetestowac jedno z mozliwosci sql injection i zmusic by skrypt skasowal tabele o nazwie "tabela" w tej bazie danych pisze wiec taki adres w przegladarce:
http://localhost/sqlinjection/xxx.php?x=imie'); DELETE FROM tablica;--
http://localhost/sqlinjection/xxx.php?x=imie'); DELETE%20FROM%20tabela;--
w wyniku czego print wywala mi na ekran:
SELECT * from test WHERE (x = 'imie'); DELETE FROM tablica;--')
i wg materialow ktore czytalem powinno to poswodowac skasowanie zawartosci tablicy "tablica" niestety jednak tablica jest niezmieniona...
Gdy to co mi wyswietlil print wykonam recznie w bazie danych w mysqlu to bardzo sie tnie maszyna moja procesora uzycie rosnei znacznie na proces php.exe ;]
Natomiast gdy zastapie -- hashem # w bazie wszystko wykonuej sie jak nalezy.
I teraz pytanie co robie zle bo sadze ze taki prosty skrypt napewno jest podatny na sql injection...
Pozdrawiam cieplutko
Emitra