我在寻找一个简单的HTML消毒用JavaScript编写的。 它并不需要100%安全XSS。
我实施降价,并在我的网站的大规模杀伤性武器降价编辑器(从GitHub上的SO主分支)。 问题是,在实时预览显示的HTML没有被过滤,喜欢这里的SO。 我要寻找一个简单/快速的HTML消毒剂用JavaScript编写的,这样我可以过滤预览窗口中的内容。
无需完全XSS保护一个完整的解析器。 我不是将输出发送回服务器。 我送了降价的地方,我用正确的,完整的HTML消毒之前,我把结果存储在数据库中的服务器。
谷歌正在绝对对我没用。 我刚刚获得数百篇关于如何筛选出的JavaScript(通常不正确)文章来自用户的各种服务器端语言生成的HTML。
UPDATE
我要解释好一点,为什么我需要这个。 我的网站有一个编辑器非常相似,这里在计算器上的一个。 有一个文本区域进入降价的语法和它下面的预览窗口,显示你怎么会像你提交之后。
当用户提交的东西,它被发送到Markdown格式的服务器。 服务器将其转换为HTML,然后运行HTML消毒剂它来清理HTML。 降价允许任意的HTML,所以我需要把它清理干净。 例如,用户类型是这样的:
<script>alert('Boo!');</script>
因为它是HTML降价转换器不碰它。 该HTML消毒剂将去掉它,因此脚本元素已经一去不复返了。
但是,这不是在预览窗口中会发生什么。 预览窗口只转换降价到HTML,但不消毒它。 因此,预览窗口将有一个脚本element.This意味着预览窗口是从服务器上实际呈现的不同。
我想解决这个问题,所以我需要一个快速和肮脏的JavaScript的HTML消毒剂。 一些简单的基本元素/属性黑名单白名单,并会做。 它并不需要,因为XSS保护是由服务器端的HTML消毒做是为了安全XSS。
这只是为了确保预览窗口将匹配的时间,这是对我不够好,实际呈现99.99%。
你能帮我吗? 提前致谢!