gpt4 book ai didi

php - 保护 WYSIWYG 输入免受 PHP 中的 XSS 攻击?

转载 作者:行者123 更新时间:2023-12-01 23:53:30 24 4
gpt4 key购买 nike

我在我的地方读到要防止 XSS 攻击,最好的做法是先做一个 stripslashes然后是 htmlspecialchars在用户输入上。然而,在某些情况下这是不可能的,例如当允许用户使用所见即所得编辑器进行一些基本标记时。

PHP 是否为此提供任何方法,允许基本标签(b、i、u、a、img、...)的特定白名单,但去除它们所有潜在危险的参数,以及转义所有 html除 < 之外的特殊字符, >"属于一组列入白名单的标签和标签参数?

或者我应该忘记这样做,而改用另一种方法,例如使用 BBcode 进行带标记的用户输入?

最佳答案

你应该实现一个 Content Security Policy在输出富文本的任何页面上除了通过使用诸如HTML Purifier 之类的 sanitizer 使文本对于HTML 输出安全之外。 .这应该可以有效防止注入(inject)的脚本命令运行。

CSP 允许您有效地阻止浏览器执行内联脚本。目前是supported by Chrome 和 Firefox 等现代浏览器(尽管 IE 目前仅提供部分支持)。

这是通过您页面的 HTTP 响应 header 完成的。

例如

Content-Security-Policy: script-src 'self' https://apis.google.com

将在用户设法将内联 JavaScript 注入(inject)您的页面时停止执行(它将被忽略并发出警告),但将允许脚本标记引用您自己的服务器或 https://apis。 google.com。这可以根据您的需要定制。不支持 CSP 的浏览器仍然需要 HTML 清理器,因此您仍然应该首先通过它运行所有用户提供的输入。

关于php - 保护 WYSIWYG 输入免受 PHP 中的 XSS 攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25335602/

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