刚才对 cnode 又进行了一下安全测试
发布于 1年前 作者 alsotang 3042 次浏览

TL;DR

上次被 [[[[[[[[[[[[[[[[@snoopy](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy)](/user/snoopy) 玩坏了,这回我随便看了看,目前 cnode 的链接仍旧不能乱点啊。

随便一测试就暴露了…

alert(1)

(以上链接没做坏事,只是 alert 一下而已)

24 回复

汗,为什么 @ 我,没过滤掉这些恶意字符串,@leizongmin 老雷的模块由bug啊

人类已经阻止不了cnode被xss了!

是不是我已经在cnode访问过无数次含恶意代码的代码了…汗

好吧,是Bug,我已经知道是咋回事了

这个只是过滤属性值的Bug,由于 onerror 等属性已经被过滤掉了,所以这段JS代码不会自动触发,

在修复 xss 模块之前,大家不要乱点超链接

<style type="text/css"> .aaaaa { } </style>

some test

不错不错 xss攻击 比SQL都还难防

搞掂了, 原来pkg json里面写了 0.0.x, 难怪npm install没有更新成功.

跨站js攻击么?

@fengmk2 本帖子中的问题在提出之后就已经修复。js-xss模块原本在过滤HTML标签和属性时是基于白名单规则,但是过滤标签的属性值时还是使用了黑名单规则,在本帖提出问题之后我已经更新了代码,改为白名单规则。

这里是一个在线程序,可以实时看到js-xss模块的过滤情况:http://ucdok.com/project/xss/

@leizongmin good,一起将 xss 模块打造成 js 领域最好的 xss 防护模块。

@fengmk2 @leizongmin 这么简单就想防 xss,简直当 wooyun 的人不存在

@fengmk2 @leizongmin 我觉得吧,如果对 js-xss 这个项目这么自信,应该去 chromium 的项目中,为 html 加个属性叫做 no-xss='no-xss',比如

<div class='comment' no-xss='no-xss'></div>,然后这个 div 里面的内容就全部不受 xss 影响。我相信每个涉及用户发言的网站都会爱上这个属性的。

@alsotang 这个提议好,但是在没有这个功能之前,只有JQuery自己处理一下了

@alsotang 有问题才会进步。如果照你这样的说法,飞机不能保证100%不出问题,是不是就不能坐飞机了……

@leizongmin @fengmk2

xss的预防真的不是那么容易的事情,在支持 html 必要性不大的情况下,没必要开这么大一个安全口子。

https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet 这个东西很难读懂的,虽然我知道 js-xss 参考了它。

@alsotang 为什么就这么害怕呢?以前有html,被攻击了又怎样?能快速反应修复改进,才有进步。更何况即使我们不开启也可能被xss,只是没被发现。 关键是被攻击之后的速度。

不能怕被咬就绕路走

回到顶部