CSRF
基本概念和缩写
跨站请求伪造,Cross-site request forgery 缩写为CSRF
CSRF攻击
也就是说如果你登陆了A网站,有session保存在浏览器,通过恶意网站B的连接你又打开了网站A并且发送了攻击者设定好的内容,导致进行了一些非你本意的操作(比如转账、发送邮件之类的)。
防御方法
- 通过 referer、token 或者 验证码 来检测用户提交。
- 尽量不要在页面的链接中暴露用户隐私信息。
- 对于用户修改删除等操作最好都使用post 操作 。
- 避免全站通用的cookie,严格设置cookie的域。
XSS
基本概念和缩写
跨域脚本攻击,Cross-site Scripting
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制--例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的"缓冲区溢出攻击",而JavaScript是新型的"ShellCode"
反射型
发出请求时,xss代码出现在URL中,作为输入提交到服务器端,服务器端响应请求,xss代码随响应内容一起传回浏览器,最后浏览器执行xss代码
反射型xss攻击
存储型
存储型跟反射型的区别只在于,提交的代码会存储在服务端,下次请求目标页面时不用再次提交XSS代码
防护措施
- 编码
对用户输入的数据进行HTML Entity编码 - 过滤
移除用户上传的DOM属性,比如onerror之类的
移除用户上传的Style节点,Script节点,ifarme节点 - 校正
避免直接对HTML Entity解码
使用DOM parse转换,校正不配对的标签
网友评论