gpt4 book ai didi

javascript - 如何从 html 字符串中删除所有 javascript(使用 javascript 或 jquery)?

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

我想在页面中显示用户提供的 html。我的页面几乎完全是动态的(JS 代码),我想知道是否有一种简单的方法来清理它?

比如,也许我可以删除所有 <script><iframe>标记并取消绑定(bind)字符串中包含的所有事件(或 remove 任何以“on”开头的 html 属性),以便不让字符串中的任何 javascript 代码可能被执行?

用户能否在样式属性中插入带有 css“内容”属性的 javascript?

jquery $(...).text(...)函数对我没有帮助,因为我想保留任何 html 标记或 css 样式。

如果没有简单的解决方案,我准备好接受 html 标签的白名单 ( table span div img a b u i strong .. .),但我宁愿不必也将属性列入白名单。

最佳答案

更安全地显示用户内容的方法是将其嵌入到 iframe 中,该 iframe 的来源域与您的主机网页不同。这就是 jsFiddle 所做的。主页由 jsfiddle.net 提供,但用户脚本由 fiddle.jshell.net 提供。这让用户内容可以做它通常会做的事情,但浏览器的跨源保护可以防止用户内容与主机页面或域或 cookie 等混淆....

尝试删除脚本可能在内容中的所有可能位置是一个冒险的提议,您可能会永远追逐新的攻击向量。我个人更愿意让浏览器参与该业务并将用户内容放在不同的域中。另外,允许用户内容拥有它的普通 JS 也将让它按需要工作。

关于javascript - 如何从 html 字符串中删除所有 javascript(使用 javascript 或 jquery)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13894818/

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