0

ODBCを使用してMSSQLServerに接続する場合、SQLインジェクションをどのように防ぐことができますか? unixODBCのバグが原因で機能odbc_prepare()しません(私の未解決の質問を参照)。また、ODBCの関数もありませ_escapeん。_quote

さらに、PDOには6年前の悪いバグがあり、結果がいずれかの列でNULLを返すと、結果セット全体がnullに戻ります(少なくともODBCを介してMSSQLに接続している場合)。

では、SQLインジェクションを防ぐために何ができるでしょうか。

4

1 に答える 1

6

これは古い質問であり、odbc_prepare()ほとんど非推奨ですが。

代わりにPDOを使用する必要があります。

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Use the MSSQL driver's native prepared statements.
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);

これは機能するはずです。

于 2020-10-01T14:18:35.303 に答える