gpt4 book ai didi

php - 帮我阻止用户输入有害代码

转载 作者:行者123 更新时间:2023-12-02 07:51:13 26 4
gpt4 key购买 nike

这个问题一直在我脑海中浮现,我如何才能完全阻止用户输入一些疯狂的 SQL 注入(inject)。是不是 mysql_real_escape_string 强大到足以阻止它?我遵循了一些指导方针,尽管这里有一些用户批评我的代码并对我的安全性表示不满。我无法理解其背后的原因。虽然我没有使用 $_GET,唯一的用户输入是通过评论系统。我只是想确保我没有出错。这是我的示例代码。

$name = htmlspecialchars(strip_tags(mysql_real_escape_string($_POST['com_name'])));

我对大约 5 个字段使用了相同的方法。您对我的上述代码有何看法?

最佳答案

如果您要将用户输入插入数据库,mysql_real_escape_string 就足够了。更好的是,使用准备好的语句 - PDO 或 MySQLi。

如果您只是在页面上显示用户数据,您应该使用 htmlspecialchars()htmlentities()

至于您发布的代码。让我们分解一下。

  • htmlspecialchars - 转换 html字符到各自的实体。
  • strip_tags - 剥离 HTML 和 PHP代码中的标签
  • mysql_real_escape_string - 转义数据库条目之前的字符。

因此,如您所见,您使用的前两个函数似乎适得其反。您正在将 HTML 字符转换为实体,但您也在剥离标签。

要确保您在数据库条目 mysql_real_escape_string 就足够之前保护用户输入。或者正如我之前提到的,使用准备好的语句。

关于php - 帮我阻止用户输入有害代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3690381/

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