Autor | Zpráva | ||
---|---|---|---|
BuGeR Profil |
#1 · Zasláno: 2. 5. 2010, 14:50:09
Dobré odpoledne.
Chtěl bych se zeptat, používam místo mysql_query vlastní funkci, tzv. lfquery: function lfquery($dotaz) { $result = mysql_query($dotaz); if(!$result) { echo mysql_error(); return (false); } else { return ($result); } } Dala by se tato funkce ošetřit-abych nemusel ošetřovat všechny vstupy, proti útoku hackera ? Např. pomocí regularních výrazu pro UPDATE, INSERT INTO apod. Děkuji.. |
||
Mufna Profil |
#2 · Zasláno: 2. 5. 2010, 15:02:14 · Upravil/a: Mufna
Já používám ještě jednu funkci pro ošetření vstupů:
function escape($str) { $str = trim($str); if(!is_numeric($str)) { $str = sprintf("%s", mysql_real_escape_string($str)); } return $str; } Pak bys to musel u vstupu používat např takto: $result = lfquery ("UPDATE tabulka WHERE radek = '" . escape($vstup) . "'"); Možná by funkce escape() šla zabudovat do té tvojí funkce (nevím, nezkoušel jsem to) |
||
bohyn Profil |
#3 · Zasláno: 2. 5. 2010, 18:27:21
BuGeR:
To je takovej problém ošetřit každou proměnnou zvlášť? Regulár ti na to nepomůže. Mufna: OMG co to máš za funkci? mysql_real_escape_string() ti nestačí? |
||
Lamicz Profil |
#4 · Zasláno: 4. 5. 2010, 04:02:48 · Upravil/a: Lamicz
bohyn:
Ta fce je nahodou chytra, protoze kdyz uz ma obaleny mysql_query a ted obali i mysql_real_escape_string, tak prepsanim techto fci muze pouzit jinou DB bez zasahu do kodu (samozrejme za predpokladu, ze je kompatibilni SQL, coz u jednoduchych SELECTu, INSERTu a UPDATEu vestinou je), je to vlastne primitivni DB layer ;) |
||
bohyn Profil |
#5 · Zasláno: 4. 5. 2010, 05:36:05
Lamicz:
Tak na BuGeRově funkci se mi nelíbí dvě věci: - vypisuje chybové hlášky do výstupu. To je sice hezké pro testování, ale k uživatelům by se to dostat nemělo. Mělo by to testovat jestli je zapnutý error_reporing nebo tak něco. - má tam 2x return (navíc zcela zbytečně) A na Mufnyho funkci se mi nelíbí ten trim() a záhadné použití sprintf(). Pokud někdo potřebuje nezávislost na DB enginu tak na to tu máme PDO které nabízí celkem slušnou sbírku driverů |
||
Časová prodleva: 14 let
|
0