Zeichenfolgen in SQL Server mit PHP maskieren
Im Bereich der Datenbankprogrammierung ist die Verhinderung von SQL-Injection-Angriffen von größter Bedeutung. Das Escapen von Zeichenfolgen, die für SQL-Abfragen bestimmt sind, ist ein entscheidender Schritt zum Schutz vor böswilligen Exploits.
Wenn es speziell um SQL Server geht, fragen sich viele Entwickler nach der Alternative zur veralteten Funktion mysql_real_escape_string() von PHP. Während addslashes() wie ein einfacher Ersatz erscheinen mag, greift es in manchen Situationen zu kurz.
Die Hex-Bytestring-Lösung
Für eine umfassende Lösung sollten Sie die Konvertierung der Daten in in Erwägung ziehen ein Hex-Bytestring. Dieser Ansatz gewährleistet universelle Kompatibilität mit allen Datentypen:
$unpacked = unpack('H*hex', $data); mssql_query(' INSERT INTO sometable (somecolumn) VALUES (0x' . $unpacked['hex'] . ') ');
Abstrahierte Funktion zum Escapen
Um den Prozess zu vereinfachen, können Sie eine benutzerdefinierte Funktion definieren:
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()
Für Um Fehler in SQL Server zu behandeln, verwenden Sie die Funktion mssql_get_last_message(), die eine ähnliche Funktionalität wie mysql_error() bietet.
Das obige ist der detaillierte Inhalt vonWie kann ich Zeichenfolgen für SQL Server-Abfragen in PHP sicher maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!