TL;DR
上次被 @snoopy 玩坏了,这回我随便看了看,目前 cnode 的链接仍旧不能乱点啊。
随便一测试就暴露了…
<a href=“jAvascriPt :alert(1);”>alert(1)</a>
(以上链接没做坏事,只是 alert 一下而已)
汗,为什么 @ 我,没过滤掉这些恶意字符串,@leizongmin 老雷的模块由bug啊
<a href=“jAvascriPt :alert(2);” target="_blank">alert(1)</a>
人类已经阻止不了cnode被xss了!
<p><a href=“jAvascriPt :alert(“真的么?”);” target="_blank">alert(1)</a></p>
是不是我已经在cnode访问过无数次含恶意代码的代码了…汗
好吧,是Bug,我已经知道是咋回事了
这个只是过滤属性值的Bug,由于 onerror
等属性已经被过滤掉了,所以这段JS代码不会自动触发,
在修复 xss
模块之前,大家不要乱点超链接
<style type=“text/css”> .aaaaa { } </style>
some test
不错不错 xss攻击 比SQL都还难防
<a href=“data:text/html;base64,PHNjcmlwdD5hbGVydCgieHNzIik7PC9zY3JpcHQ+” target="_blank">data链接</a>
搞掂了, 原来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 这个提议好
@alsotang 这个提议好,但是在没有这个功能之前,只有JQuery自己处理一下了
@alsotang 有问题才会进步。如果照你这样的说法,飞机不能保证100%不出问题,是不是就不能坐飞机了……
xss的预防真的不是那么容易的事情,在支持 html 必要性不大的情况下,没必要开这么大一个安全口子。
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet 这个东西很难读懂的,虽然我知道 js-xss 参考了它。
@alsotang 为什么就这么害怕呢?以前有html,被攻击了又怎样?能快速反应修复改进,才有进步。更何况即使我们不开启也可能被xss,只是没被发现。 关键是被攻击之后的速度。
不能怕被咬就绕路走