簡述:CSRF 攻击是什么?

前言:

CSRF (Cross Site Request Forgery),中文称:跨站请求攻击。攻击者通过建构网站后台某个功能接口的请求地址,设法让用户点击连结或者脚本的方式让请求地址自动加载。

簡述:CSRF 攻击是什么?_第1张图片
CSRF 攻击过程

攻击者怎样攻击?

用户登录原网站,浏览器会记录Cookies ,如果用户未登出或Cookies并未过期(用户关闭浏览器不代表网站已登出或Cookies会立即过期)。在这期间,如果用户造访其他危险网站,点击了攻击者的连结,便会向原网站发出某个功能请求,原网站的伺服器接收后会被误会以为是用户合法操作。

为何会有漏洞?

一般是网站采用 GET 形式去发出请求,让攻击者轻易知道网站向后台的请求方式。令攻击者按照其方式,建构网站后台某个功能接口的请求地址。在你点击击攻击者的连结前,由于你已登录过原网站。而攻击者的连结会向原网站发出请求,你的浏览器会带上你原网站的 Cookie 发出 GET 形式的请求去执行请求,原网站的伺服器接收后会被误会以为是用户合法操作。

即使改用 POST 形式的接口也不是绝对安全,因为攻击者可以利用脚本去获得 POST 形式提交的参数页面。

如何预防?

在于用户,应该:

  • 登录网站后,使用完毕后紧记登出。
  • 登录网站期间,避免浏览其他网站或图片,表单及文字等连结点击。
  • 避免浏览其他不明来历网站或点击不明来历图片,表单及文字等连结。
  • 避免在浏览器储存帐户名称或密码

在于开发人员,应该:

  • 从伺服器进行预防
  • 在页面表单中加上CSRF token
    在页面表单中加上一个 ,并设定名 name =csrftokenvalue="" 填的值由 伺服器随机产生,并存在伺服器的 session 中。
  

按提交之后,伺服器会核对表单中的csrftoken与自己 session 里面存的是否一致,若是则代表由使用者本人发出的请求。

  • 还有其他的预防方式可参考:
    让我们来谈谈 CSRF
    浅谈CSRF攻击方式

总结:

本文是小弟学习前端写有关于简述:CSRF 攻击是什么?,请大家多多指教。如有任何意见及交流,可在下方留言,谢谢!

你可能感兴趣的:(簡述:CSRF 攻击是什么?)