一、CSRF攻击:api
CSRF(Cross-site request forgery):跨站请求伪造。跨域
(1)、攻击原理:浏览器
如上图,在B网站引诱用户访问A网站(用户以前登陆过A网站,浏览器 cookie 缓存了身份验证信息),缓存
经过调用A网站的接口攻击A网站。服务器
(2)、防护措施:cookie
1)token验证:登录成功后服务器下发token令牌存到用户本地,再次访问时要主动发送token,浏览器只能主动发cookie,作不到主动发tokenxss
2)referer验证:判断页面来源是否本身站点的页面,不是不执行请求网站
3)隐藏令牌: 令牌放在http header头中,而不是连接中编码
二、XSS 攻击:url
XSS(Cross Site Scripting):跨域脚本攻击。
(1)、攻击原理:
不须要你作任何的登陆认证,它会经过合法的操做(好比在url中输入、在评论框中输入),向你的页面注入脚本(多是js、hmtl代码块等)。
(2)、防护措施:
令xss没法攻击,好比对注入的东西进行转义、编码、过滤、校订等。
三、区别:
CSRF:须要用户先登陆网站A,获取 cookie。XSS:不须要登陆。
CSRF:是利用网站A自己的漏洞,去请求网站A的api。XSS:是向网站 A 注入 JS代码,而后执行 JS 里的代码,篡改网站A的内容。