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

2016-05-22 17:32:32 +08:00
 odoooo

大概流程是这样

web 应用层,

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

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

判断时间戳是否失效。

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

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

谢谢诸位,

9093 次点击
所在节点    Lua
5 条回复
LazyZhu
2016-05-22 17:42:01 +08:00
odoooo
2016-05-22 17:44:02 +08:00
@LazyZhu 谢谢回复,这个看了,不想用 MySQL 。。。难道只有 cookie+session 了么。。。
nealfeng
2016-05-22 17:51:31 +08:00
也许可以用:
X-Accel-Redirect 在 web 层做判断
binux
2016-05-22 18:17:32 +08:00
对 UID 签名
fcicq
2016-05-22 19:54:29 +08:00
明明早就有 ngx_http_secure_link_module 了不是吗? 用户拿到链接必然就只能假定他能够拿到文件了, 盗链过强意义不大

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/280459

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX