odoooo
V2EX  ›  Lua

正在用 lua 写一个 nginx 防盗链的拓展,遇到了一个问题。

  •  
  •   odoooo · May 22, 2016 · 9747 views
    This topic created in 3686 days ago, the information mentioned may be changed or developed.

    大概流程是这样

    web 应用层,

    md5(IP.文件路径.其他固定信息如 UA 啥的) 存进 redis ,并作为 url 中的 hash 。

    nginx 里, ngx.md5(IP.文件路径.其他固定信息如 UA 啥的)对比连接中的 hash 并读取 redis 查到时间戳。

    判断时间戳是否失效。

    现在想吧 UID 也放进去,不知道有什么好方法能做到避免伪造和验证用户是否登录。只有给 nginx+lua 写 cookie+session 来验证吗?

    nginx.lua 上面不方便读 MySQL 数据库的~~.

    谢谢诸位,

    5 replies    2016-05-22 19:54:29 +08:00
    odoooo
        2
    odoooo  
    OP
       May 22, 2016
    @LazyZhu 谢谢回复,这个看了,不想用 MySQL 。。。难道只有 cookie+session 了么。。。
    nealfeng
        3
    nealfeng  
       May 22, 2016
    也许可以用:
    X-Accel-Redirect 在 web 层做判断
    binux
        4
    binux  
       May 22, 2016
    对 UID 签名
    fcicq
        5
    fcicq  
       May 22, 2016
    明明早就有 ngx_http_secure_link_module 了不是吗? 用户拿到链接必然就只能假定他能够拿到文件了, 盗链过强意义不大
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3065 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 13:40 · PVG 21:40 · LAX 06:40 · JFK 09:40
    ♥ Do have faith in what you're doing.