CSRF总结

CSRF(Cross-site request forgery )跨站请求伪造

条件

  • CSRF的攻击建立在浏览器与web服务器的会话中
    • 直接的利用了用户浏览器保存的Cookie 让用户去执行某个动作
  • 欺骗用户访问URL
    • 让用户在同一浏览器中打开恶意URL,该网页会向用户登录的网站,发送请求,而服务器会认为请求是用户发出的,执行后,攻击成功

如何判断是否存在CSRF漏洞

  • 判断一个网站是否存在CSRF漏洞,其实就是判断其对关键信息(比如密码等敏感信息)的操作(增删改)是否容易被伪造。
  • 要确定web应用的所有功能,哪些操作是敏感的,比如:修改密码,转账、发表留言

CSRF与XSS的区别

CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限(如,获取用户Cookie),然后实施破坏

攻击场景

get

  • 直接在URL中构造相关参数,诱导用户点击访问URL

post

  • 可以构造一个form表单,利用JavaScript自动提交表单,(自动执行submit)
    如:

    <script>document.getElementById('submit').click();</script>
    

伪装

  • 设置跳转页面

  • 设置不跳转页面

    • 利用AJAX

    • 通过form表单的target,如

             <iframe> frameborder="0" name="myiframe" width="0px" height="0px"></iframe>
             <form id="myform" method="post" target="myiframe" action="...">
      
      

Cookie机制

  • 本地cookie(持久型cookie),设定了Expire字段,存储于本地
  • 临时cookie(session cookie),存储在内存中,关闭浏览器时,失效

预防CSRF

  • 二次确认
  • Token认证
    • 验证码认证:
    • Token认证:
原文地址:https://www.cnblogs.com/hacker-snail/p/14106109.html