csrf与xss攻击的详解与区别

  • CSRF:跨站请求伪造

登录受信任网站A,并在本地生成Cookie,在不登出A的情况下,访问危险网站B。其实是利用了网站A的漏洞

如何防御:
  • Token 验证(用的最多)
  • 隐藏令牌:把token隐藏在http的head头中
  • Referer验证:Referer指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截

 

  • XSS:跨域脚本攻击
  1. 原理:不需要你做任何的登录认证,它会通过合法的操作(比如在url中输入、在评论框中输入),向你的页面注入脚本(可能是js、hmtl代码块等)
  2. 后果:盗用Cookie破坏页面的正常结构,插入广告等恶意内容D-doss攻击
  3. 防范:编码、过滤、校正
  4. 编码:对用户输入的数据进行HTML Entity 编码。把字符转换成 转义字符
  5. 过滤:移除用户输入的和事件相关的属性
  6. 校正:避免直接对HTML Entity进行解码。使用DOM Parse转换,校正不配对的DOM标签

 

  • 区别:
  1. CSRF是跨站请求伪造;  XSS是跨域脚本攻击。
  2. CSRF需要用户先登录网站A,获取cookie;  XSS不需要登录。
  3. CSRF是利用网站A本身的漏洞,去请求网站A的api;  XSS是向网站A注入JS代码,然后执行JS里的代码,篡改网站A的内容。(XSS利用的是站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的网站。你可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求。)
© 版权声明
THE END
喜欢就支持一下吧
分享