美文网首页
CSRF攻击

CSRF攻击

作者: 卿东望 | 来源:发表于2022-01-05 14:37 被阅读0次

    除了XSS攻击外,还有一种叫CSRF的攻击不容小视。

    什么是CSRF攻击呢?

    CSRF攻击又称跨站请求伪造,攻击者利用用户在网站的登录状态,并通过第三方站点实施攻击的一种手段。

    与XSS攻击的不同之处在于,CSRF攻击不需要往用户的页面中注入恶意脚本。

    常见的CSRF攻击有自动发起get请求自动发起post请求诱导用户点击链接三种方式。

    get类型的CSRF攻击

    在一个img标签里构建一个get请求,当页面被加载时,浏览器便会自动发起一个get请求。
    <img src="http://xxx.org?value=100">

    post类型的CSRF攻击

    在页面中隐藏一个表单,当用户打开页面时,自动提交这个表单。

    如:

    <form id="hacker" action="http://xxx.com" method=POST>
      <input type="hidden" name="user" value="100" >
    </form>
    <script>document.getElementById("hacker").submit()</script>
    

    链接类型的CSRF攻击

    a标签的href属性里构建一个请求,然后诱导用户去点击。

    <body>
      <img src="xxx.jpg">
      <a href="http://xxx.org?value=100"></a>
    </body>
    

    如何防止CSRF攻击呢?

    发起CSRF攻击有两个条件,分别是用户登录了目标站点,且浏览器保留了用户的登录状态;用户打开了第三方站点。

    1. 使用sameSite属性

    攻击者会利用登录状态来发起CSRF攻击,而Cookie是保持登录状态的关键数据,所以,可以在Cookie上想办法防止CSRF攻击。

    Cookie中加入sameSite属性,samesite有三种值。

    • strict
      第三方站点发起的请求都不会携带cookie`。
    • lat
      get请求会携带cookie,post请求不会。
    • none
      任何请求都会携带cookie
    1. 验证请求来源

    服务端验证请求源,如果请求来自非指定源,则服务端不做响应。

    1. CSRF Token

    浏览器向服务端发送请求时,服务端生成一个CSRF Token,并将它植入到返回的页面中。当再次发起请求时,就需要携带这个CSRF Token,如果没有这个token,则请求失败。

    相关文章

      网友评论

          本文标题:CSRF攻击

          本文链接:https://www.haomeiwen.com/subject/bbwhcrtx.html