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; } |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
$text = preg_replace("/["'`]*/",'',$text); känns lite enklare.. (ja du får ju fylla på själv med tecken).
|
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Flitig postare
|
Varför inte använda PHP:s egen funktion mysql_escape_string()?
|
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Flitig postare
|
Du kan ju köra med
$text = urldecode($text); |
|||
![]() |
![]() |
![]() |
#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?
|
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Medlem
|
addslashes() ...?
|
||
![]() |
![]() |
![]() |
#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 |
|
|