首頁 >後端開發 >php教程 >如何在 PHP 中安全地轉義 SQL Server 查詢的字串?

如何在 PHP 中安全地轉義 SQL Server 查詢的字串?

Susan Sarandon
Susan Sarandon原創
2024-12-09 04:01:17748瀏覽

How to Safely Escape Strings for SQL Server Queries in PHP?

使用 PHP 在 SQL Server 中轉義字串

在資料庫程式設計領域,防止 SQL 注入攻擊至關重要。轉義用於 SQL 查詢的字串是防範惡意攻擊的關鍵一步。

在專門處理 SQL Server 時,許多開發人員想知道 PHP 中已棄用的 mysql_real_escape_string() 函數的替代方案。雖然addslashes() 看起來像是一個簡單的替換,但在某些情況下它存在不足。

十六進位位元組字串解決方案

對於全面的解決方案,請考慮將資料轉換為十六進位位元組字串。這種方法確保與所有資料類型的通用相容性:

$unpacked = unpack('H*hex', $data);
mssql_query('
    INSERT INTO sometable (somecolumn)
    VALUES (0x' . $unpacked['hex'] . ')
');

用於轉義的抽象函數

為了簡化過程,您可以定義一個自定義函數:

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) . ')
');

要處理 SQL Server 中的錯誤,請使用 mssql_get_last_message() 函數,該函數提供與 mysql_error() 類似的函數。

以上是如何在 PHP 中安全地轉義 SQL Server 查詢的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn