连接到数据库时阻止SQL注入

时间:2014-02-25 19:24:35

标签: php mysql validation mysqli sql-injection

最初连接到mySQL数据库时是否需要验证用户输入?请考虑PHP中的以下示例,其中基于用户对表单的输入建立与数据库的初始连接(例如,通过允许管理员更改存储在服务器上的文件中的数据库凭据的表单):

$mysqli = new PDO('mssqli:host=' . $_REQUEST['host'] . ';dbname=' . $_REQUEST['db'] . ', $_REQUEST['username'], $_REQUEST['password']);

是否需要验证$ _REQUEST变量,即可以在此处进行SQL注入?如果是这样,有没有办法参数化这个命令? 谢谢你的帮助。 此致

1 个答案:

答案 0 :(得分:1)

  

是否需要验证$ _REQUEST变量

至少这是个好主意。

  

可以在这里进行SQL注入吗?

此类代码唯一合理的情况是用户也是数据库所有者。因此,他几乎不会注入他已被允许进入的数据库。此外,没有SQL可以注入,严格来说。

  

如果有,有没有办法参数化这个命令?

没有