Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man Strings in SQL Server bei Verwendung von PHP sicher maskieren?
Bei der Interaktion mit SQL Server mithilfe von PHP ist es wichtig sicherzustellen, dass alle vom Benutzer bereitgestellten Daten ordnungsgemäß maskiert werden, um SQL zu verhindern Injektionsattacken. Während mysql_real_escape_string() häufig für MySQL verwendet wird, ist es für SQL Server nicht verfügbar.
Im Gegensatz zu MySQL bietet SQL Server keine dedizierte Funktion für Zeichenfolge entweicht. Sie können jedoch Ihre eigene Funktion erstellen:
function mssql_escape($data) { if (is_numeric($data)) { return $data; } $unpacked = unpack('H*hex', $data); return '0x' . $unpacked['hex']; } $escaped_value = mssql_escape($user_input);
Diese Funktion kodiert die Daten als hexadezimale Bytezeichenfolge und stellt sicher, dass alle Sonderzeichen maskiert werden.
Um Fehlermeldungen von SQL Server abzurufen, verwenden Sie mssql_get_last_message():
$error_message = mssql_get_last_message();
Diese Funktion ruft die letzte Fehlermeldung ab, die durch die Ausführung einer SQL Server-Abfrage generiert wurde.
Durch die Kombination dieser Funktionen können Sie sicher einfügen Benutzereingabe in eine SQL Server-Tabelle:
$connection = mssql_connect(...); $query = 'INSERT INTO sometable (somecolumn) VALUES (' . mssql_escape($user_input) . ')'; $result = mssql_query($query, $connection); if (!$result) { $error_message = mssql_get_last_message(); // Retrieve error message }
Das obige ist der detaillierte Inhalt vonWie kann man Strings in SQL Server bei Verwendung von PHP sicher maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!