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

nginx 能对静态资源做签名验证吗?

  •  
  •   ksc010 · 2023-09-16 14:28:31 +08:00 · 855 次点击
    这是一个创建于 445 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如站点下有 a.com/img/a.jpg

    需求如下 直接访问 http://a.com/img/a.jpg 会提示没有权限

    必须通过 http://a.com/img/a.jpg?sign={signcode} 的方式访问,并且有有效期限

    签名可以通过程序计算出来,由 web 后端程序计算生成签名后的链接

    6 条回复    2023-09-16 16:46:58 +08:00
    ysc3839
        1
    ysc3839  
       2023-09-16 14:42:24 +08:00 via Android
    估计得用 OpenResty 等,配合脚本实现
    Puteulanus
        2
    Puteulanus  
       2023-09-16 14:44:06 +08:00   ❤️ 1
    签名,有效期,感觉你需要的是 jwt
    有第三方的 jwt 模块,要自己编译,Nginx Plus 有个官方的 http://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html
    wonderfulcxm
        3
    wonderfulcxm  
       2023-09-16 14:45:17 +08:00 via iPhone
    ngx_lua 那种应该可以写
    LLaMA2
        4
    LLaMA2  
       2023-09-16 15:03:49 +08:00
    lovelylain
        5
    lovelylain  
       2023-09-16 15:06:21 +08:00 via Android   ❤️ 1
    nginx 有 http://nginx.org/en/docs/http/ngx_http_secure_link_module.html 可以实现你要的签名验证功能。我的折腾路线是:先用了这个功能,但这功能只能验证,我还是得有另外的页面来生成认证信息,所以折腾又折腾,生成和验证全部转发给另外的接口处理了,通过 nginx 的内部转发实现。
    ksc010
        6
    ksc010  
    OP
       2023-09-16 16:46:58 +08:00
    感谢各位
    @lovelylain 研究了下 ngx_http_secure_link_module , 这个可以满足我的需求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   999 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:18 · PVG 05:18 · LAX 13:18 · JFK 16:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.