1.CSRF 和 XSS 的区别
区别一:
CSRF:需要用户先登录网站A,获取 cookie。 XSS:不需要登录。
区别二:(原理的区别)
CSRF:是利用网站A本身的漏洞,去请求网站A的api。 XSS:是向网站 A 注入 JS代码,然后执行 JS 里的代码,篡改网站A的内容。
2.CSRF(跨站请求伪造)
如何防御:
1.Token 验证:(用的最多)
2.Referer 验证:
Referer 指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截。
3.XSS(跨域脚本攻击)
XSS攻击的核心原理是:不需要你做任何的登录认证,它会通过合法的操作(比如在url中输入、在评论框中输入),向你的页面注入脚本(可能是js、hmtl代码块等)。
造成的后果:
盗用Cookie破坏页面的正常结构,插入广告等恶意内容D-doss攻击
如何防御:
1.编码:
对用户输入的数据进行编码
2.过滤:
移除用户输入的和事件相关的属性
3、校正:
避免直接对HTML Entity进行解码。使用DOM Parse转换,校正不配对的DOM标签