ホームページ > バックエンド開発 > PHPチュートリアル > PHP で SQL Server クエリの文字列を安全にエスケープする方法

PHP で SQL Server クエリの文字列を安全にエスケープする方法

Susan Sarandon
リリース: 2024-12-09 04:01:17
オリジナル
752 人が閲覧しました

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

PHP を使用した SQL Server での文字列のエスケープ

データベース プログラミングの領域では、SQL インジェクション攻撃を防ぐことが最も重要です。 SQL クエリ用の文字列をエスケープすることは、悪意のあるエクスプロイトから保護するための重要なステップです。

特に SQL Server を扱う場合、多くの開発者は、PHP の非推奨の mysql_real_escape_string() 関数の代替手段について疑問に思っています。 addslashes() は簡単な置き換えのように見えるかもしれませんが、状況によっては不十分です。

16 進バイト文字列ソリューション

包括的なソリューションとして、データを次のように変換することを検討してください。 16 進数のバイト文字列。このアプローチにより、すべてのデータ型との汎用互換性が確保されます。

$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) . ')
');
ログイン後にコピー

の代替mysql_error()

SQL Server でエラーを処理するには、mysql_error() と同様の機能を提供する mssql_get_last_message() 関数を使用します。

以上がPHP で SQL Server クエリの文字列を安全にエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート