Portál AbcLinuxu, 12. listopadu 2025 11:37
Nekdo me upozornil na SQL injection flaw in the php coding.
Muzete me navest jak se proti tomu branit.
Diky
Takze jestli jsem spravne rozumel, tak chyba je v programovani?
Web je od firmy, takze se obratit na ni?
Webhosting si delam sam.
Jakym zpusobem si to muzu sam prekontrolovat?
) a buď to aplikace má ošetřeno, podvržený požadavek zahodí a nic zajímavého nebude (správné chování), nebo najdeš díru v aplikaci.
Prominte jsem v tomto nezkuseny. Takze jeste dotaz.
Cim myslite aplikaci? Je tedy dira v nastaveni MYSQL nebo dira v programingu webu?
Potreboval bych nejake doporuceni co delat, abych tomu zamezil.
ibase_query($conn, 'update TBL set COL=? where ID=?', $val, $id);nebo
$qry = ibase_prepare($conn, 'insert into TBL(COL) values (?)');
for ($i=1; $i<=100; i++)
ibase_execute($qry, $i);
ibase_unprepare($qry);
Když si na to zvyknete, je to podstatně praktičtější a SQL injection nehrozí - dokud nezačnete vkládat data od klienta do dotazu, což ale v naprosté většině případů není potřeba.
. Protoze momentalne nevidim rozdil, jestli zavadna data poslu soucasne s dotazem, nebo jako parametr. Jak rikam - jsem zacatecnik. Mozna taky ne zcela presne rozumim pojmu "SQL injection".
$query = "SELECT * FROM users WHERE username='$_REQUEST[username]' AND password='$_REQUEST[password]'";do password jsem dal: ' OR 'a'='a a funguje to, ale jak zjistim data z tabulky?
$query = "SELECT * FROM users WHERE username='$_REQUEST[username]' AND password='$_REQUEST[password]'";
function myentities($text)
{
$bad=array('&','"',"'");
$good=array('&','"',''');
$text=str_replace($bad,$good,$text);
return $text;
}
function mysprintf($format) {
$args = func_get_args();
unset($args[0]);
foreach($args as $id => $v){
$args[$id]=myentities($v);
}
return vsprintf($format,$args);
}
a volanie SQL nasledovne:
$prikaz=mysprintf("SELECT * FROM login WHERE login='%s' AND pass=SHA1('%s');",$_POST['login'],$_POST['pass']);
$q=mysql_query($prikaz);
Vo funkcii myentities mam casto este dalsie znaky, ktore potrebujem pri nacitani konvertovat. Kedze som C-ckar, stale pouzivam konstrukcie s sprintf, takze je to pre mna minimalna zmena a uplne mi to vyhovuje.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.