一个前端DOMXSS过滤器

最近热衷于刷twitter,各种大牛的东西让我应接不暇,感觉确实新有干货,前几天看到Yosuke发状态了:

01.jpg

是发的一个DOMParser处理、过滤html的小程序。想想觉得还是挺新颖的,以前自己也做了一个XssHtml过滤类(http://phith0n.github.io/XssHtml/),但都是基于后端语言的,不能处理前端比如DOMXSS。

看了他的代码感觉挺好的,思路也是基于白名单的过滤机制,将允许存在的标签和属性列在javascript对象中,遍历DOM后将允许的标签和属性保留,不允许的丢弃。

我改了改,加了点过滤,做了个类,代码如下:

 

使用方法:

运行完成后会将过滤后的代码输出在id为target的元素中。

github:https://github.com/phith0n/Jsdxss

大家可以在这个页面测试:http://phith0n.github.io/Jsdxss/test.html

【via@离别歌