gpt4 book ai didi

javascript - 如何修复 javascript 上的 XSS 漏洞?

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

1) 我收到带有 html 标签的响应,例如: This is <b>Test</b>

2) 有时响应可能包含脚本(或 iframe、canvas 等)标签(XSS),例如:This <script>alert("Hello from XSS")</script> is <b>Test</b>

3) 如何去除除其他 html 标签之外的所有 XSS 标签(script、iframe、canvas...)?

PS:我不能使用转义,因为它被删除了 <b> , <strong>和其他标签。

最佳答案

how can remove all of XSS tags (script, iframe, canvas...) except of other html tags?

所有 标签都可能存在 XSS 风险。例如<b onmouseover="..."> , <a href="javascript:..."><strong style="padding: expression(...)"> .

要使 HTML 呈现“安全”,您需要对其进行过滤以仅允许一组最小的已知安全元素和属性。所有 URL 属性都需要进一步检查已知良好的协议(protocol)。这称为“白名单”。

这不是一项简单的任务,因为您通常必须正确解析 HTML 以检测存在哪些元素和属性。一个简单的正则表达式不足以提取可能有问题的内容的范围,尤其是在 JavaScript 中,它的正则表达式引擎相对有限(没有后向、不可靠的前瞻等)。

有一些服务器端语言工具可以为您完成这项工作,例如 PHP 的 HTML Purifier。我建议在返回内容之前在服务器端使用其中一个库,因为我目前还不知道有此类适用于 JavaScript 的优秀库。

关于javascript - 如何修复 javascript 上的 XSS 漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7293077/

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