PHP を使用した SQL Server での文字列のエスケープ: 総合ガイド
PHP を使用して SQL Server を操作する場合、データを外部から保護することが重要です。文字列を適切にエスケープすることによる SQL インジェクション攻撃。これは、悪意のある入力が SQL コマンドとして解釈されるのを防ぐ手法です。
mysql_real_escape_string() の代替
MySQL とは異なり、SQL Server には組み込みのと同等の機能mysql_real_escape_string().
Enteraddslashes()
addslashes() は、文字列エスケープの代替候補としてよく考えられる PHP 関数です。ただし、addslashes() は SQL Server データベースでの使用には完全に適しているわけではないことに注意することが重要です。
より堅牢なソリューション
理想的なソリューションは、手動でエンコードすることです。データは 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 サイトの他の関連記事を参照してください。