Ako zabrániť strate údajov alebo ochrana pred falošným SQL. (1.)
Pre niekoho je táto téma nová, ale mal by ju ovládať najmä ak ma dosť známi web s DB mySQL. Je to vloženie cudzieho kódu do našeho DB volania a vymazanie alebo doplnenie cudzích dát. Prebieha veľmi rafinovane a vy o tom ani neviete. Admini veľkých webov takýmto útokom čelia každý deň. No nebudeme dlho chodiť okolo horúcej kaše tu je vysvetlenie.Vloženie falošného SQL pomocou URL
Máme url: www.neco.cz/user.php?id=1 Data s DB "vytiahneme" tradičným príkazom v php:
<?
$user_id= $_GET["id"];
$sql = "select name, adres, city from usr where id= $usr_id ";
$result = mysql_qerry($sql);
...
?>
a sql bude nasledujuci
select name, adres, city from usr where id=
1
Myslíme si že je všetko ako má byť až pokiaľ sa na našom serveri nezačne nekdo zlomyseľný nudiť. Upravý cele URL nasledujúco:
http://www.neco.cz/urer.php?id=1%20or%201=1
Ak si zmenime poďivné znaky %20 na medzeru, dostaneme nasledujuce Url a ešte horší príkaz SQl:
http://www.neco.cz/user.php?id=1 or 1=1
a sql select name, adres, city from usr where id=1 or 1=1 keďže podmienka 1=1 bude splnená zobrazí sa namiesto dát 1 uživateľa hneď data všetkych uživateľov!!!!!!!!
Pohroma že? Ale može byť aj horšie viz. ukázka:
http://www.neco.cz/user.php?id=1 delete; * from usr
a ešte horši SQL:
select name, adres, city from usr where id=1; delete * from usr
a pokiaľ nemáme zálohované tak si môžeme akurat vys... Keďže za ";" môže byť akýkoľvek príkaz može takto byť doplnená naša tabuľka o rôzne data.
Nabudúce si ukážeme podvrhnutie pomocou formulára a session. Nakoniec zhrnieme všetky body ochrany pred "HACKNUTIM" :O) .
ZatiaĹ toľko TUBES.
Autor: TUBES