我使用下面的serve块来使用NGINX安全链接提供一些mp4文件。
server {
listen 80;
listen [::]:80;
root /var/www/cdn;
index index.html index.php index.htm index.nginx-debian.html;
server_name cdn.server.xyz;
location /v {
root /var/www/cdn/videos;
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri$remote_addr supersecret";
if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }
}
}和下面的PHP代码来生成哈希:
问题是,对于任何请求,我都有403错误。
这是nginx error.log (https://pastebin.com/UkfQWttC),有什么建议说我做错了什么吗?
发布于 2022-07-29 19:03:02
nginx安全链接文档声明MD5哈希值应该用base64url编码。
但是,在您的代码中,您使用的是普通的Base64编码,这是不同的。您可以使用Base64.guru中描述的函数在PHP中执行base64url编码。
base64和base64编码的不同之处在于+被-代替,/被_代替。
https://serverfault.com/questions/1106957
复制相似问题