首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

检验 Referer 的作用是什么?

  •  
  •   jiangzhuo · 2017-02-23 14:08:30 +08:00 · 2296 次点击
    这是一个创建于 730 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面这样的请求几天之前是正常的 今天访问了一下被 403 了

    curl -X GET -H "Referer: http://a.danmaku.cn" "http://www.acfun.cn/" --head
    HTTP/1.1 403 Forbidden
    Server: Tengine
    Date: Thu, 23 Feb 2017 05:56:50 GMT
    Content-Type: text/html
    Content-Length: 161
    Connection: keep-alive
    X-Tengine-Error: denied by Referer ACL
    Via: kunlun1.cn36[,403003]
    Timing-Allow-Origin: *
    EagleId: 3c1ce20114878294106198259e
    

    A 站这里检查 referer 的作用是什么呢? 如果是 CSRF 攻击可以伪造 Referer ,并且这是请求的还是首页。 人家没开发过什么网站,更对网站安全没啥研究。

    13 回复  |  直到 2017-02-23 21:06:03 +08:00
        1
    luckyduck   2017-02-23 15:35:24 +08:00
    一般用来防止图片盗链
        2
    jiangzhuo   2017-02-23 15:37:31 +08:00
    @luckyduck 但是我请求的是 A 站首页,没有防盗链的需求。防盗链应该是在 CDN 上配的
        3
    shiny   2017-02-23 15:37:57 +08:00
    如果把 A 站资源嵌入自己网站供访问者使用,无法篡改访客的 Referer 。
        4
    jiangzhuo   2017-02-23 15:49:28 +08:00
    @shiny 但是嵌个首页链接也。。。。。。
    很好奇一开始 A 站没做 referer 处理,是这两天根据 Access log 分析出什么来加上的?
        5
    crab   2017-02-23 15:54:53 +08:00
    @jiangzhuo 怎么可能首页。浏览器第一次打开如果是首页,那也没 referer
        6
    jiangzhuo   2017-02-23 16:01:03 +08:00
    @crab 是一个<a>标签,点击链接跳转
    ```
    <!DOCTYPE html>
    <html>
    <head></head>
    <body><a href="http://www.acfun.cn" rel="noreferrer" id="autoclick"></a>
    <script>document.getElementById('autoclick').click();</script>
    </body>
    </html>
    ```
    http://a.danmaku.cn
        7
    lslqtz   2017-02-23 17:17:52 +08:00 via iPhone
    @shiny 但是可以不发送 referer
        8
    shiny   2017-02-23 17:30:54 +08:00
    @lslqtz 记得好像是 A 链接可以控制不发送,而且不是所有浏览器都支持?
        9
    changwei   2017-02-23 17:50:19 +08:00 via Android
    js 无法修改通过 html 标签的 src 或者 xmlhttprequest 发出去的请求的 referer ,校验这个值可以简单的防御 csrf 攻击。
        10
    weyou   2017-02-23 19:20:41 +08:00 via Android
    如果被攻击者使用的是正常的浏览器, csrf 攻击真的改不了 referer
        11
    lslqtz   2017-02-23 21:01:11 +08:00 via iPhone
    @shiny 兼容性的确是问题
    @changwei
    meta 有标签可以改全部的
        12
    lslqtz   2017-02-23 21:01:27 +08:00 via iPhone
    改 -> 隐藏
        13
    Goheing   2017-02-23 21:06:03 +08:00
    @weyou 改不了 referer,却可以绕过的~~~ 一个 302 就过了~~~
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2172 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 05:23 · PVG 13:23 · LAX 21:23 · JFK 00:23
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1