Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man Strings in SQL Server bei Verwendung von PHP sicher maskieren?

Wie kann man Strings in SQL Server bei Verwendung von PHP sicher maskieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 02:36:09309Durchsuche

How to Safely Escape Strings in SQL Server When Using PHP?

Sicheres Escapen von Zeichenfolgen in SQL Server mithilfe von PHP

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.

Alternative für Escapezeichenfolgen: mssql_escape()

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.

Alternative für mysql_error(): mssql_get_last_message( )

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.

Beispielverwendung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn