赞
踩
在前端,最常见的攻击就是XSS和CSRF了,下面最两种攻击进行总结以下。
1)存储型XSS:攻击者将恶意代码提交到目标网站的数据库中,当用户发出请求时,服务端将恶意代码从数据库取出,返回给用户,用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。这种攻击常见于存储数据的网站功能,如论坛发帖,商品评论,用户私信等。
2)反射型XSS:攻击者构造出特殊的包含恶意代码的URL,用户打开URL时,网站服务器将恶意代码从URL中取出,拼接在HTML中返回,浏览器执行包含了恶意代码。这种攻击常见于通过URL传递参数的功能,如网站搜索,跳转等。
3)DOM型XSS:攻击者构造出特殊的包含恶意代码的URL,用户打开URL时,恶意代码执行,攻击者窃取用户数据并发送到攻击者的网站,或者冒充用户行为。
1)存储型和反射型的区别:存储型XSS的恶意代码保存在数据库中;反射型XSS的恶意代码保存在URL中;
2)DOM型跟前两中类型的区别:DOM型XSS取出和执行恶意代码都由浏览器端完成,属于前端JS自身的安全漏洞,其他两种属于服务端的安全漏洞。
1)输入过滤,不要相信用户的输入;
2)对HTML(特殊字符:如& < > " ' /等)进行充分转义;
3) 在使用
.innerHTML
、.outerHTML
、document.write()
时要特别小心,不要把不可信的数据作为 HTML 插到页面上,而应尽量使用.textContent
、.setAttribute()
等;4)开启CSP(Content-Security-Policy):CSP是网页安全政策的缩写,CSP网页的开发者可以控制整个页面的外部资源的内容来源。
<meta http-equiv="Content-Security-Policy" content="">
1)阻止不明外域的访问:同源检测,refer检查;
2)服务端就进行CSRF验证,可以在客户端页面增加随机数,比如输入验证码等或者token验证;
3)在HTTP头中自己定义属性并验证
参考文档:前端安全系列(一):如何防止XSS攻击?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。