我试图实现这个模块以保护文件下载不受热链接的影响,并限制带宽的窃取:模块
我得到了403个错误。我认为这个错误在PHP代码中的某个地方。
/etc/nginx/con.d/default.conf
location /downloads/ {
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri$remote_addr secret";
if ($secure_link = "") {
return 403;
}
if ($secure_link = "0") {
return 410;
}
}PHP
function base64url_encode($data) {
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
$file = '/downloads/file1.txt';
$expires = time() + 3600;
$md5 = base64url_encode(md5( $expires . $file . $_SERVER['REMOTE_ADDR'] . "secret" ));
$download_link = "http://example.com/downloads/?md5=$md5&expires=$expires";发布于 2016-07-25 09:10:42
以下步骤是错误的
$md5 = base64url_encode(md5( "secret" . $expires . $file . $_SERVER['REMOTE_ADDR'] ));
$download_link = "http://example.com".$file."?md5=".$md5."&expires=".$expires;nginx配置
location /downloads/ {
secure_link $arg_md5,$arg_expires;
secure_link_md5 secret$arg_expires$uri$remote_addr;
if ($secure_link = "") {
return 403;
}
if ($secure_link = "0") {
return 410;
}
}请看我的问题。我在模块里有一个比这个更大的问题。这在节点js中适用于我。我用PHP测试了我的代码。我还没测试过你的。但我想这是可行的;)
https://stackoverflow.com/questions/37949905
复制相似问题