Mögliche Duplizieren:
Best way to stop SQL Injection in PHP
The ultimate clean/secure functionIst meine Fluchtfunktion wirklich sicher?
Meine Website über SQL-Injection angegriffen wurde und jetzt brauche ich es zu verbessern. Ich erstelle eine Funktion in PHP escape()
, die die maskierte Version einer Zeichenfolge zurückgibt. Ich bin kein Hacker, bitte hilf mir, meine Fluchtfunktion zu verbessern. Hier ist die aktuelle Version:
function escape($string){
$string = stripslashes($string);
$string = mysql_real_escape_string($string);
$string = strip_tags($string);
$string = str_replace('%','',$string);
$string = str_replace('_','',$string);
return $string;
}
Meine Frage ist: ist diese hackable, wenn es als ist, wie es zu beheben? Vielen Dank!
Das ist, ehrlich gesagt, schrecklich. Es handelt sich um eine willkürliche Sammlung von Ersetzungen, die ohne Rücksicht darauf, was die Daten sind oder wo sie gemacht werden können, vorgenommen werden. – Quentin
Um vor Angriffen zu schützen, wenn Benutzereingaben an anderen Stellen eingefügt werden (z. B. HTML-Dokumente oder JavaScript-Blöcke oder E-Mail oder PDF usw.), recherchieren Sie diese speziell. Es gibt kein globales Allheilmittel. – Quentin
Alle Funktionen in Ihrem Beispiel außer 'mysql_real_escape_string' machen keinen Sinn (' stripslashes' macht Sinn, nur wenn Sie magische Anführungszeichen haben). –