gpt4 book ai didi

php - 我找到 XSS 漏洞的方法是一个好的起点吗?

转载 作者:行者123 更新时间:2023-11-29 00:24:31 25 4
gpt4 key购买 nike

信息

这是一个关于在我的网站中查找可能的 XSS 攻击的快速问题。

我目前正在保护我的网站,并且了解到防止 XSS 的一个好方法是使用 htmlspecialchars($string, ENT_QUOTES, 'UTF-8');以确保显示 html 而不是运行。

我的解决方案

我已经用测试数据抽取了我的数据库,如下所示 <script>console.log("This Page is Vulnerable");</script>

因此,任何显示任何未转义数据行的页面都会输出一个 console.log,然后我可以在我的源中找到它并转义它。

问题

现在我明白这不是我为防止 XSS 而必须做的唯一事情,但这是否至少减少了持续 XSS 攻击的可能性?

最后,有人对从这里去哪里有什么建议吗? (我知道这是一个模糊的问题,所以如果你喜欢请忽略。否则,任何问题都会尽快回答。)

谢谢。

最佳答案

是的,当然,包装输入/输出数据的单个函数是不够的。编程不是魔术,而是逻辑。

假设出于某种原因您有这个示例 HTML/JS/PHP:

<form action="" method="POST" />
<input type="text" name="yourInput" />
<input type="submit"/>
</form>
<script><?= htmlspecialchars($_POST['yourInput'], ENT_QUOTES, 'UTF-8');?></script>

出于某种原因,也许没人能解释,您将用户输入放入了 <script>标签。您使用了 HTML 特殊字符,因此没有引号或 < , >将出现,但假设用户输入:

alert(document.cookie)

没有引号和开始标签,但在提交表单后,在下一次加载时将显示带有当前用户 cookie 的警报。

因此,正如我在评论中所说,您应该检查所有输入并测试它们的行为。试着把自己想象成一个潜在的黑客。

这不仅仅与使用包装数据的函数有关,还与使用数据的位置有关。如果你把它放错了地方,任何功能都救不了你。在上面的示例中,您需要将数据放在正确的位置,如果您要使用它 - 将它用作字符串。

关于php - 我找到 XSS 漏洞的方法是一个好的起点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19565054/

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