如何在PHP中处理FluentPDO的安全问题?

如何在PHP中处理FluentPDO的安全问题?,php,mysql,pdo,prepared-statement,sql-injection,Php,Mysql,Pdo,Prepared Statement,Sql Injection,我正在使用FluentPDO处理我的数据库查询。 在查看代码时,它似乎没有使用任何形式的转义。我知道PDO本身解决了很多安全问题,但它也不能免疫这些问题 据我所知,只要我们使用其主页上的prepared statements语法,它就不会受到SQL注入的影响: $query = $fpdo->from('article') ->where('published_at > ?', $date) // HERE!! ->orderBy('pub

我正在使用FluentPDO处理我的数据库查询。 在查看代码时,它似乎没有使用任何形式的转义。我知道PDO本身解决了很多安全问题,但它也不能免疫这些问题

据我所知,只要我们使用其主页上的prepared statements语法,它就不会受到SQL注入的影响:

$query = $fpdo->from('article')
        ->where('published_at > ?', $date) // HERE!!
        ->orderBy('published_at DESC')
        ->limit(5);
如何转义变量以防止二阶SQL注入?仅仅使用addslashes()就足够了吗?这会是多余的吗? 我应该如何处理此库的安全性

谢谢

关于消毒

一些很好的引语:

不要试图通过清理输入数据来阻止SQL注入

相反,不要在创建SQL代码时使用数据。使用使用绑定变量的准备语句(即在模板查询中使用参数)。这是防止SQL注入的唯一方法

或者(阅读更多关于)

PHP现在有了新的nice filter\u输入函数,例如,它可以让您从查找“终极电子邮件正则表达式”中解放出来,因为现在有了内置的filter\u VALIDATE\u电子邮件类型


如果库使用prepared语句并绑定参数。那应该没问题。不要区分数据来自哪里;只需将其作为参数传递即可。很抱歉@Gumbo,请您进一步解释一下好吗?@fgarci03一些人认为所谓的“二阶SQL注入”是一种特殊情况,因为数据来自“可信来源”或任何不可靠的论点。然而,只有在处理数据库中的数据与处理其他数据源中的数据不同时,这才是一种特殊情况。但任何SQL注入都只是SQL注入,而不管数据的来源如何。SQL注入不是信任的问题,而是数据处理不当的问题。因此,只需担心数据来自何处,只需将其作为参数传递给数据库,以确保按预期处理,即。e、 ,作为数据。我现在知道了。是的,无论数据来自何处,我都以相同的方式处理所有数据!感谢您注意,验证(如使用
过滤器\u验证\u电子邮件所示)不会使正确的数据处理(例如,准备好的语句所使用的参数化)过时。有关详细示例,请参见和。