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

标签 php mysql pdo prepared-statement sql-injection

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

据我了解,只要我们使用其主页上提供的准备好的语句语法,它就不会受到 SQL 注入(inject)的影响:

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

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

谢谢!

最佳答案

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

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

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

关于php - 如何处理 PHP 中 FluentPDO 的安全问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697002/

相关文章:

javascript - 在 PHP 中使用 javascript 变量

PHP 7.2 抛出 run "composer require symfony/dotenv",7.1 没有

python - 如何访问 PeeweeforeignKeyField 的一列

php - Magento - 通过查询字符串将产品添加到购物车

php - 为什么要使用 ATTR_EMULATE_PREPARES,mysql_real_escape_string 有什么替代品吗?在 PDO 中

php - 向mysql表中插入数据

php - 在 switch 构造中调用和声明的函数会出错

php - 网址后面的用户名

PHP/PDO/MySQL : Convert Multiple Queries Into Single Query

PHP MySql - 更新未更新