ksc010
V2EX  ›  问与答

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

  •  
  •   ksc010 · Sep 16, 2023 · 1334 views
    This topic created in 1013 days ago, the information mentioned may be changed or developed.

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

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

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

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

    6 replies    2023-09-16 16:46:58 +08:00
    ysc3839
        1
    ysc3839  
       Sep 16, 2023 via Android
    估计得用 OpenResty 等,配合脚本实现
    Puteulanus
        2
    Puteulanus  
       Sep 16, 2023   ❤️ 1
    签名,有效期,感觉你需要的是 jwt
    有第三方的 jwt 模块,要自己编译,Nginx Plus 有个官方的 http://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html
    wonderfulcxm
        3
    wonderfulcxm  
       Sep 16, 2023 via iPhone
    ngx_lua 那种应该可以写
    LLaMA2
        4
    LLaMA2  
       Sep 16, 2023
    lovelylain
        5
    lovelylain  
       Sep 16, 2023 via Android   ❤️ 1
    nginx 有 http://nginx.org/en/docs/http/ngx_http_secure_link_module.html 可以实现你要的签名验证功能。我的折腾路线是:先用了这个功能,但这功能只能验证,我还是得有另外的页面来生成认证信息,所以折腾又折腾,生成和验证全部转发给另外的接口处理了,通过 nginx 的内部转发实现。
    ksc010
        6
    ksc010  
    OP
       Sep 16, 2023
    感谢各位
    @lovelylain 研究了下 ngx_http_secure_link_module , 这个可以满足我的需求
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3647 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 00:41 · PVG 08:41 · LAX 17:41 · JFK 20:41
    ♥ Do have faith in what you're doing.