如果我正确地准备并绑定我的应用程序中的每个查询,是否需要使用mysqli_real_escape_string(用于MYSQLI连接)或addslashes(用于PDO连接)?
我问这个似乎"已经问过"问题是因为Stackoverflow上的其他人已经询问他们的应用程序是否可以安全地免受注入攻击,如果他们准备他们的语句但他们也不是说 BIND 。
通常接下来是读者在准备查询时如何安全的一阶查询,但是二阶查询容易受到注入攻击,然后读者/响应者列出要做的事情,这是一个长而有用的解释。防止这种情况。通常BINDING作为一种解决方案出现。
所以,我的问题其实很简单:
如果我的应用程序中的每个查询都使用适当的方法(对于MYSQLI或PDO)使用所有参数BOUND进行了PREPARED,我是否可以放弃mysqli_real_escape_string()和addslashes()清理传递给查询的字符串?
(我修改了在整个网站上没有使用过单个准备好的查询的其他人编写的代码;相反,他依靠mysqli_real_escape_string进行清理。因为我遇到了麻烦准备和绑定每个单独的查询,我希望能够删除mysqli_real_escape_string / addslashes例程,如果通过正确准备所有查询并绑定所有参数而使它们变得不必要,正如我所做的那样。
非常感谢!