zoukankan      html  css  js  c++  java
  • 跨站点请求伪造(CSRF)

            CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。

    一、浏览器的 Cookie 策略

            浏览器所持有的 Cookie 分为两种:一种是“Session Cookie”,又称“临时 Cookie”;另一种是“Third-party Cookie”,也成为“本地 Cookie”。

            两者的区别在于,Third-party Cookie 服务器在 Set-Cookie 时指定了 Expire 时间,只有到了 Expire 时间后 Cookie 才会失效,所以这种 Cookie 会保存在本地;而 Session Cookie 则没有指定 Expire 时间,所以浏览器关闭后,Session Cookie 就失效了。

            如果浏览器从一个域的页面中,要加载另一个域的资源,由于安全问题,某些浏览器会阻止 Third-pary Cookie 的发送。

    二、CSRF 的防御

    1 验证码

    2 Referer Check

            Referer Check 在互联网中最常见的应用就是“防止图片盗链”。同理,Referer Check 也可以被用于检查请求是否来自合法的“源”。

    3 Anti CSRF Token

    三、CSRF 的本质

            CSRF 为什么能够攻击成功?其本质原因是重要操作的所有参数都是可以被攻击者猜测到的。

            在 URL 中,保持原参数不变,新增一个参数 Token。这个 Token 的值是随机的,不可预测。

            Token 需要同时放在表单和 Session 中。在提交请求时,服务器只需验证表单中的 Token,与用户 Session(或 Cookie)中的 Token 是否一致,如果一致,则认为是合法请求;如果不一致,或者有一个为空,则认为请求不合法,可能发生了 CSRF 攻击。

  • 相关阅读:
    在Centos 7下编译openwrt+njit-client
    开博随笔
    Chapter 6. Statements
    Chapter 4. Arrays and Pointers
    Chapter 3. Library Types
    Chapter 2.  Variables and Basic Types
    关于stm32不常用的中断,如何添加, 比如timer10 timer11等
    keil 报错 expected an identifier
    案例分析 串口的地不要接到电源上 会烧掉
    案例分析 CAN OPEN 调试记录 进度
  • 原文地址:https://www.cnblogs.com/SyMind/p/8470132.html
Copyright © 2011-2022 走看看