谈谈前端安全规范
最近研究了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(...)