| FAQ |
| Kalender |
|
|
#1 | ||
|
|||
|
Medlem
|
Jag har ett antal php-skript som tar emot GET-argument som den skickar till mySQL. För att minska risken för SQL-injektioner kör jag dessa GET-strängar genom en funktion som tar bort tecken i stil med ' och "
Men jag lyckas inte få min funktion att ta bort %22 från strängen, trots att jag försöker få den att filtrera bort "%" Kod:
function safe_text($text)
{
$bad_chars = array("\$","\"","\'","%","&","<",">");
$text = str_replace($bad_chars, "", $text);
return $text;
}
|
||
|
|
Svara med citat
|
|
|
#2 | ||
|
|||
|
Klarade millennium-buggen
|
$text = preg_replace("/["'`]*/",'',$text); känns lite enklare.. (ja du får ju fylla på själv med tecken).
|
||
|
|
Svara med citat
|
|
|
#3 | |||
|
||||
|
Flitig postare
|
Varför inte använda PHP:s egen funktion mysql_escape_string()?
|
|||
|
|
Svara med citat
|
|
|
#4 | |||
|
||||
|
Flitig postare
|
Du kan ju köra med
$text = urldecode($text); |
|||
|
|
Svara med citat
|
|
|
#5 | ||
|
|||
|
Klarade millennium-buggen
|
Jo men nu handlar det ju om att få bort backtick, jag vet inte om nån av de där tar bort den faktiskt?
|
||
|
|
Svara med citat
|
|
|
#6 | ||
|
|||
|
Medlem
|
addslashes() ...?
|
||
|
|
Svara med citat
|
|
|
#7 | ||
|
|||
|
Medlem
|
Om du vill skydda dig mot SQL-injektioner är mitt tips att kolla på
http://se2.php.net/mysql_real_escape_string |
||
|
|
Svara med citat
|
| Svara |
|
|