简单的HTML消毒剂在Javascript

前端之家收集整理的这篇文章主要介绍了简单的HTML消毒剂在Javascript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一个用JavaScript编写的简单的HTML消毒剂.它不需要100%的XSS安全.

我正在我的网站上实施Markdown和WMD Markdown编辑器(来自github的SO主分支).问题是实时预览中显示的HTML不会像SO这样在这里过滤.我正在寻找一个用JavaScript编写的简单/快速的HTML消毒剂,以便我可以过滤预览窗口的内容.

不需要具有完整XSS保护的完整解析器.我没有将输出发送回服务器.在将数据库中存储结果之前,我将Markdown发送到服务器,在那里我使用了一个适当的完整的HTML消毒器.

Google对我来说绝对没有用.我只收到数百(通常不正确)的文章,如何从各种服务器端语言的用户生成的HTML中过滤掉JavaScript.

UPDATE

我会解释一下为什么我需要这个.我的网站有一个非常类似于StackOverflow的编辑器.有一个文本区域可以输入MarkDown语法,并在其下方显示一个预览窗口,显示您提交之后的外观.

用户提交内容时,会以MarkDown格式发送到服务器.服务器将其转换为HTML,然后在其上运行一个HTML消毒器来清理HTML. MarkDown允许任意HTML,所以我需要清理它.例如,用户键入如下内容

<script>alert('Boo!');</script>

MarkDown转换器并不会触摸它,因为它是HTML. HTML消毒器将剥离它,以免脚本元素消失.

但这不是预览窗口中发生的情况.预览窗口仅将MarkDown转换为HTML,但不会对其进行清理.因此,预览窗口将具有脚本元素.这意味着预览窗口与服务器上的实际呈现不同.

我想解决这个问题,所以我需要一个快速而又脏的JavaScript HTML消毒器.一些简单的基本元素/属性黑名单和白名单将会做.它不需要XSS安全,因为XSS保护由服务器端的HTML消毒器完成.

这只是为了确保预览窗口匹配实际渲染99.99%的时间,这对我来说是足够好的.

你能帮我吗?提前致谢!

解决方法

你应该看看这个问题 Sanitize/Rewrite HTML on the Client Side中推荐的那个

只要确保您不需要对XSS做更多的事情,请查看这个How to prevent Javascript injection attacks within user-generated HTML的答案

猜你在找的HTML相关文章