1.CSRF 和 XSS 的区别

区别一:
CSRF:需要用户先登录网站A,获取 cookie。 XSS:不需要登录。

区别二:(原理的区别)
CSRF:是利用网站A本身的漏洞,去请求网站A的api。 XSS:是向网站 A 注入 JS代码,然后执行 JS 里的代码,篡改网站A的内容。

2.CSRF(跨站请求伪造)

如何防御:

1.Token 验证:(用的最多)

2.Referer 验证:

  1. Referer 指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截。

3.XSS(跨域脚本攻击)

  1. XSS攻击的核心原理是:不需要你做任何的登录认证,它会通过合法的操作(比如在url中输入、在评论框中输入),向你的页面注入脚本(可能是jshmtl代码块等)。
  2. 造成的后果:
  3. 盗用Cookie破坏页面的正常结构,插入广告等恶意内容D-doss攻击

如何防御:

1.编码:

对用户输入的数据进行编码
2.过滤:
移除用户输入的和事件相关的属性
3、校正:
避免直接对HTML Entity进行解码。使用DOM Parse转换,校正不配对的DOM标签