Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Zeichenfolgen in SQL Server-Abfragen mit PHP sicher maskieren?
Zeichenfolgen in SQL Server mit PHP maskieren: Eine umfassende Anleitung
Bei der Arbeit mit SQL Server mit PHP ist es wichtig, Ihre Daten davor zu schützen SQL-Injection-Angriffe durch ordnungsgemäßes Escapen von Zeichenfolgen. Dies ist eine Technik, um zu verhindern, dass böswillige Eingaben als SQL-Befehle interpretiert werden.
Alternative zu mysql_real_escape_string()
Im Gegensatz zu MySQL bietet SQL Server keine integrierte Funktion Funktion äquivalent zu mysql_real_escape_string().
Enter addslashes()
addslashes() ist eine PHP-Funktion, die oft als mögliche Alternative zum String-Escape in Betracht gezogen wird. Es ist jedoch wichtig zu beachten, dass addslashes() für die Verwendung mit SQL Server-Datenbanken nicht vollständig geeignet ist.
Eine robustere Lösung
Die ideale Lösung ist die manuelle Codierung die Daten als Hex-Bytestring. Hier ist ein Codeausschnitt zur Orientierung:
$unpacked = unpack('H*hex', $data); mssql_query(' INSERT INTO sometable (somecolumn) VALUES (0x' . $unpacked['hex'] . ') ');
Abstraktion für wiederverwendbares Escaping
Um den Escape-Prozess zu vereinfachen und wiederzuverwenden, können Sie eine benutzerdefinierte Funktion wie diese erstellen:
function mssql_escape($data) { if(is_numeric($data)) return $data; $unpacked = unpack('H*hex', $data); return '0x' . $unpacked['hex']; } mssql_query(' INSERT INTO sometable (somecolumn) VALUES (' . mssql_escape($somevalue) . ') ');
Alternative zu mysql_error()
Zur Fehlerbehandlung bietet SQL Server mssql_get_last_message() als Alternative zu mysql_error().
Das obige ist der detaillierte Inhalt vonWie kann ich Zeichenfolgen in SQL Server-Abfragen mit PHP sicher maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!