最近研究了css规范,下一步就是简单分析一下前端安全相关的知识。
?
以下内容整理之淘宝UED相关资料
?
?
1、XSS (Cross Site Script)跨站攻击脚本
?
方式主要有: ? ?
?
- ?在Web页面插入恶意的html代码
- ?用户浏览网页,嵌入在页面里面的代码会被执行
?
种类主要有:
?
- 基于DOM的XSS
?? ? ? 产生的原因:
?? ? ? ? ? ??
?? ? ? ? ? ? ?i、页面含有一些不受服务器端控制的DOM
?? ? ? ? ? ? ?ii、通过form、referer、location修改页面的DOM
?? ? ? 解决的方法:
?? ? ? ? ? ? 避免客户端脚本对DOM的重写、重定向及其它的敏感操作,需要在客户端对form输入进行过滤
?? ??
- 基于字符集的XSS
?? ??产生的原因:
?? ? ? ? ? 页面字符集不固定,用户输入非期望字符集的字符,逃过了过滤。
?? ??解决的方法:
?? ? ? ? ? i、页面一定要指定字符集
?? ? ? ? ? ii、XML不仅要指定字符集,而且要标签闭合
- 持久性XSS
?? ? 产生的原因:
?? ? ? ? 破坏html结构,来源是数据库导致。
?? ? 解决的方法:
?? ? ? ? ?对输入进行过滤
?? ? ? ? ?对输出进行编码,如<>等这些进行编码的转换
- 非持久性XSS
?? ??产生的原因:
?? ? ? ? ?
?? ? ? ? ? 直接将fomr或者搜索域中的字符扔到页面,比如搜索域输入带<script>的执行脚本,在展示搜索结果的时候会执行输入的脚本
?? ??解决的方法:
?? ? ? ? ?对输入进行过滤
?? ? ? ? ?对输出进行编码,如<>等这些进行编码的转换
- 基于Flash的跨站
?? ? 产生的原因:
?? ? ? ? ?AS脚本接受用户输入并操作cookie,攻击者配合其他XSS方法将恶意swf文件嵌入页面
?? ??解决的方法:
?? ? ? ? i、管理好cookie的读写权限
?? ? ? ? ii、对flash接受用户输入进行过滤和限定
- Self-inflicted XSS
?? ? ?产生的原因:
?? ? ? ? ?某些用户作为攻击者,对其他用户进行攻击,最常见的可能就是分享了。
?? ? ?解决的方法:
?? ? ? ??
?? ? ? ? ?对于自己不信任的尽量不要点击。
- 未经验证的跳转构成的跨站
?? ? ??产生的原因:
?? ? ? ? ?服务端做302调整,攻击者利用这跳转到恶意的网站。
?? ?
?? ? ??解决的方法:
?? ? ? ? ?后端限定接收的URL
- Cookie的跨站
?? ? ? 产生的原因:
?? ? ? ? ?脚本操作cookie,比如进行搜索提交等。
?? ?
?? ? ??解决的方法:
?? ? ? ? ?后端对cookie进行验证
?
?
2、CSRF(伪造请求)
?
?? 场景:
?
?? ??表单提交相关,比如登录、注册
?? ? Ajax请求数据相关的
?
?? 防范:
?
?? ? 验证码、时间戳
?? ? 在表单中加入token,提交方式尽量POST
?? ? AJAX附带token
?
?
??可被利用的脚本:
?? ? ? ? ? ?i、URL相关的
?? ? ? ? ? ? ? document.location = ...
?? ? ? ? ? ? ? document.location.hostname = ...
?? ? ? ? ? ? ? document.location.replace(...)
?? ? ? ? ? ? ? document.referer
?? ? ? ? ? ? ? document.URL = ...
?? ? ? ? ? ? ? window.location
?? ? ? ? ? ii、直接运行的脚本
?? ? ? ? ? ? ? eval(....)
?? ? ? ? ? ? ??window.setInterval(...)
?? ? ? ? ? ? ? window.setTimeout(...)
?? ? ? ? ? ? ? window.execScript(...)