Hvordan undgår man sql injections?
Hej eksperterSom en naturlig del af en webapp jeg bikser med privat, vil jeg gerne højne sikkerheden.
Sql injections virker som en rimelig seriøs ting, man bør undgå, men hvordan?
Jeg stødte på denne kode på php.net:
function encodeText($_str) {
$_str = strip_tags($_str);
$_str = trim($_str);
$_str = htmlentities($_str);
$_str = str_replace("\r\n", "#BR#", $_str);
return($_str);
}
function decodeText($_str, $_form) {
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
$_str = strtr($_str, $trans_tbl);
if ($_form) {
$_nl = "\r\n";
} else {
$_nl = "<br>";
}
$_str = str_replace("#BR#", "$_nl", $_str);
return($_str);
}
Vil det være nok for mig, at:
1. køre encodeText() på hele _POST, _GET og _REQUEST arraysne i en init rutine (før nogle vars bliver benyttet)
2. Gemme outputtet direkte i databasen (vha PEAR::MDB2 + dens quoting)
3. Vise indhold fra databasen (alm selects) kun påført decodeText()
Nogen input?
mvh