url查询与安全

发布于 2024-08-30 19:28:44 字数 126 浏览 8 评论 0原文

在带有 id 的 url 查询中,我使用 is_numeric($_GET['id']) 来解决安全问题。但是在查询例如类别名称时,urlencode()是安全的正确方法吗? 提前致谢。

In url query with id I use is_numeric($_GET['id']) for security issues. But in query with for example category name, is urlencode() a right way for security?
Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

被你宠の有点坏 2024-09-06 19:28:44

不,urlencode 用于使字符串采用 URL 编码形式。

与数字 ID 不同,没有一种方法可以清理字符串输入值。您需要使用什么方法取决于您想要对类别名称执行什么操作。

例如:

  • 如果您想在查询中使用它,请至少对其运行 mysql_real_escape_string() 或(更好)使用支持参数化查询的数据库类(如 PDO)。对于参数化查询,PDO 将负责安全地清理任何传入参数。

  • 如果想输出到页面上,需要在输出前运行htmlentities(),以防止HTML代码注入。

当使用类别名称作为文件名、将其用作 URL 的一部分等等时,还有其他事情需要注意。

No, urlencode is used to make strings take URL encoded form.

Unlike with a numeric ID, there is no one single method of sanitizing a string input value. What method you need to use depends on what you want to do with the category name.

For example:

  • If you want to use it in a query, run at least a mysql_real_escape_string() on it or (better) use a database class that supports parametrized queries (like PDO). With parametrized queries, PDO will take care of securely sanitizing any incoming parameters.

  • If you want to output it on a page, you need to run htmlentities() on it before outputting to prevent injection of HTML code.

there are other things to take care of when using the category name as a file name, when using it as part of an URL and so on and so on.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文