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

yftpprvb  于 2023-01-24  发布在  PHP
关注(0)|答案(2)|浏览(96)

我正在使用FluentPDO来处理我的数据库查询。在查看它的代码时,它似乎没有使用任何形式的转义。我知道PDO本身解决了很多安全问题,但它也不能幸免。
据我所知,只要我们使用它主页上的预准备语句语法,它就不会受到SQL注入的影响:

$query = $fpdo->from('article')
        ->where('published_at > ?', $date) // HERE!!
        ->orderBy('published_at DESC')
        ->limit(5);

如何转义变量以防止二阶SQL注入?简单地使用addslashes()就足够了吗?它是多余的吗?我应该如何处理这个库的安全性?
谢谢!

iyr7buue

iyr7buue1#

FluentPDO通过PDO的“execute”方法传递所有参数,例如:

$connection = new PDO(...);
$pdo = connection->prepare($sql);
$pdo->execute($params);

这就是为什么FluentPDO已经准备好了查询以避免SQL注入。

iklwldmw

iklwldmw2#

关于消毒,read more
一些不错的报价:
不要试图通过清理输入数据来防止SQL注入。
相反,不要允许在创建SQL代码时使用数据。请使用使用绑定变量的预准备语句(即在模板查询中使用参数)。这是保证不会发生SQL注入的唯一方法。
或(阅读更多关于validating filters的信息)
PHP现在有了新的漂亮的filter_input函数,例如,现在有了一个内置的FILTER_VALIDATE_EMAIL类型,就可以把你从寻找“终极电子邮件正则表达式”中解放出来

相关问题