gpt4 book ai didi

php - 转义 pdo 查询,有必要吗?

转载 作者:可可西里 更新时间:2023-11-01 07:58:11 27 4
gpt4 key购买 nike

我今天的问题是。我需要在我的脚本中转义 PDO 吗?

$columns = implode(", ",$column);
$query = ''.$query.' '.$columns.' FROM '.$table.'';
$dbh_query = $dbh->prepare($query);
$dbh_query->execute();
$dbh_querys = $dbh_query->fetchAll();

return $dbh_querys;

整个脚本可以在。 https://github.com/joshuahiwat/crud/blob/master/control/query_connector.class.php

谁能解释一下为什么我此时需要逃生或者为什么不需要。

非常感谢您的来信!

最佳答案

查询的动态部分是表名和列名。您不能对查询的这些部分使用绑定(bind)函数。绑定(bind)函数只能用于查询的部分,否则这些部分将是 SQL 查询中的简单值。像数字常量、带引号的字符串或带引号的日期文字。

要避免来自动态表名或列名的 SQL 注入(inject),您有以下选择:

  • 使用您类(class)中预定义的值,或者以其他方式确定是安全的。不要使用来自用户或任何其他来源的外部内容。
  • 使用转义。请注意,函数 PDO::quote() 不会执行您需要的表名或列名转义。
  • 创建已知表名和相应表的列名的“白名单”,并将动态输入与白名单进行比较。如果它与白名单不匹配,则引发错误。

关于php - 转义 pdo 查询,有必要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39282397/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com