gpt4 book ai didi

php - 转义并清理 $_GET 参数

转载 作者:行者123 更新时间:2023-12-01 00:35:07 25 4
gpt4 key购买 nike

我知道数据应该在输出或显示时进行清理,而不是在接收或存储时进行清理。这就是我现在正在做的:

echo htmlspecialchars($name, ENT_QUOTES);

如果我要获取 $_GET 参数并为它们检查数据库,我是否仍应清理和转义?例如:

$name = htmlspecialchars($_GET['name'], ENT_QUOTES);
$stmt = $db->prepare("SELECT * FROM users WHERE name = :name");
$stmt->bindParam(':name', $name);
$stmt->execute();

那么 htmlspecialchars 是必需的还是我应该只做 $name = $_GET['name']

最佳答案

PDO 使它比您做的更容易:

$stmt = $db->prepare("SELECT * FROM users WHERE name = :name");
$stmt->execute([ 'name' => $_GET['name'] ]);

就是这样。完成。

在使用占位符值时,不要转义是很重要的,尤其是在进行匹配时。 htmlspecialchars 在 HTML 上下文中相关,否则它会造成损害。如果您在 JSON、电子邮件或任何地方显示数据,请针对该上下文和该上下文进行转义。

如果某人的名字像“A&W”,那么当您搜索时,您将破坏输入并实际搜索“A&W”,这不是他们的名字。他们将获得零匹配,然后他们会询问您的网站出了什么问题。

您应该对输入数据做的唯一事情是删除可能干扰搜索匹配的任何字符,例如某人可能不小心引入的前导和尾随空格。

关于php - 转义并清理 $_GET 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54584251/

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