gpt4 book ai didi

php - 验证 GET 字符串但仍使用特殊字符?

转载 作者:行者123 更新时间:2023-11-29 05:43:52 28 4
gpt4 key购买 nike

我的一个 GET 变量允许所有可能通过 urlencoding 弄乱 URL 的字符。麻烦的是,意味着标签可以传递给脚本并显示在html中,不好!特别是因为它习惯于在 mysql 数据库上运行 SELECT。

所以我现在使用的是一个散列在一起的 preg_replace,它去除了任何标签(如下)

$getstring = preg_replace("/(<\/?)(\w+)([^>]*>)/e","", $getstring);

这就足够了吗?还是有一个我错过的大洞?

最佳答案

htmlspecialchars()将允许显示特殊字符。 HTML 标签将显示为普通文本(即转义),因此如果有人有太多时间,您可以看到他们尝试过的内容。如果你想在那之后过滤一些标签,使用之前的尝试来指导你。

如果你想允许一些格式,使用strip_tags带有白名单以允许一些基本标签。或者,标记语言,例如 Markdown (此处使用)或 ReMarkable可能有用,具体取决于用户的技术水平。

听起来好像您也容易受到 SQL 注入(inject)攻击。您应该尽可能使用参数化查询,使用 mysqli(问题具有 mysql-query 标记)或 PDO。 PDO::prepare()应该可以让您快速了解这一点。

关于php - 验证 GET 字符串但仍使用特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4399346/

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