Ich lasse alle meine Ganzzahlen durch eine (int)Integer
um sie in meinen Abfragezeichenfolgen sicher zu verwenden.
Ich lasse meine Zeichenketten auch durch diesen Funktionscode laufen:-
if(!get_magic_quotes_gpc()) {
$string = mysql_real_escape_string($string);
}
$pattern = array("\\'", "\\\"", "\\\\", "\\0");
$replace = array("", "", "", "");
if(preg_match("/[\\\\'\"\\0]/", str_replace($pattern, $replace, $string))) $string = addslashes($string);
$cleanedString = str_replace('%','',$string);
Ich gebe natürlich die Variable $cleanedString zurück. Jetzt ersetze ich das %-Zeichen, weil es für mySQL ein Platzhalter ist und meine Abfragen möglicherweise verlangsamen könnte (oder falsche Daten zurückgeben würde), wenn der Benutzer es einfügt. Gibt es noch andere Sonderzeichen für mySQL, auf die ich achten sollte?
Zweitens: Ist etwas falsch oder überflüssig an meinem Suchen und Ersetzen nach der mysql_real_escape_string
? Ich habe es von einer Website, wenn ich zum ersten Mal aus und (wenn ich mich richtig erinnere) sagte, dass Sie diese Suche / Ersetzen zusätzlich zu den Escape-Zeichenfolge verwenden musste. Es sieht aus wie es versucht, alle zuvor escaped Injektionszeichen zu entfernen?