0

使用 ODBC 连接到 MS SQL Server 时,如何防止 SQL 注入? odbc_prepare()由于 unixODBC 的错误,它不起作用(请参阅我的未解决问题),并且 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 回答