V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
HappyDay123
V2EX  ›  NGINX

Nginx referer 方面问题请教大神

  •  
  •   HappyDay123 · 2022-07-31 23:03:19 +08:00 · 2311 次点击
    这是一个创建于 875 天前的主题,其中的信息可能已经有所发展或是发生改变。
    valid_referers none blocked;
    if ($invalid_referer) {
    return 403;
    }

    #上面代码表示 referer 为空时允许访问。所有带 referer 的请求则返回 403

    我现在想所有带 referer 的请求允许,referer 为空时返回 403 应该怎么写呢?

    折腾了很久,实在不知怎么写,所以过来请教大神
    12 条回复    2022-08-02 12:15:05 +08:00
    ysc3839
        1
    ysc3839  
       2022-07-31 23:07:43 +08:00   ❤️ 1
    HappyDay123
        2
    HappyDay123  
    OP
       2022-07-31 23:59:59 +08:00 via iPhone
    这论坛比 loc 还凉啊
    V1Eerie
        3
    V1Eerie  
       2022-08-01 00:20:36 +08:00 via Android
    @HappyDay123 1 楼文档都发出来了,看一下就能解决的问题应该不需要再讨论了吧。
    HappyDay123
        4
    HappyDay123  
    OP
       2022-08-01 00:37:50 +08:00 via iPhone
    @V1Eerie 档案所述的我已经写在了上面………
    Steps
        5
    Steps  
       2022-08-01 04:14:53 +08:00
    if (!$invalid_referer) {
    return 403;
    }

    难道是这个?
    LcDraven
        6
    LcDraven  
       2022-08-01 11:29:13 +08:00
    if ($http_referer = "") { return 403; }
    xx3122
        7
    xx3122  
       2022-08-01 12:15:53 +08:00
    楼上正解
    HappyDay123
        8
    HappyDay123  
    OP
       2022-08-01 23:46:16 +08:00 via iPhone
    @LcDraven 感谢回复。我也这样尝试了,referer 不为空也返回了 403 。我想达到的目的是比如一个图片链接嵌入到任意网页能打开。浏览器直接打开图片则 403 。
    fyw321451
        9
    fyw321451  
       2022-08-02 05:45:08 +08:00 via iPhone
    @HappyDay123 没意义
    ryd994
        10
    ryd994  
       2022-08-02 05:48:16 +08:00
    你的注释是错的
    valid_referers none blocked; 的意思是如果没 referer 或者是 invalid 的话就 return 403
    建议你在 log 里添加$http_referer 变量,或者 tcpdump 抓包,录下来看看实际收到的 referer 是什么

    单论你的问题的话,$http_referer = “” 也可以满足要求。
    LcDraven
        11
    LcDraven  
       2022-08-02 10:14:08 +08:00
    @HappyDay123 那应该是前端的事,我不太懂
    HappyDay123
        12
    HappyDay123  
    OP
       2022-08-02 12:15:05 +08:00 via iPhone
    @ryd994 我是做图床的,这个功能很重要。另外一位大佬已经给出了这个代码$http_referer = “”,实测后带 referer 的请求也返回了 403
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   920 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:43 · PVG 03:43 · LAX 11:43 · JFK 14:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.