首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx安全链接过期不工作

Nginx安全链接过期不工作
EN

Stack Overflow用户
提问于 2022-11-16 11:02:20
回答 1查看 20关注 0票数 0

我正试图在一个ubuntu服务器上设置一个过期的NGINX安全链接。下面是我目前使用的NGINX配置和PHP代码。

代码语言:javascript
复制
location /files {
    
    secure_link $arg_md5,$arg_expires;
    secure_link_md5 "$secure_link_expires$uri$remote_addr enigma";

    if ($secure_link = "") { return 403; }
    if ($secure_link = "0") { return 410; }

}

以下是PHP代码

代码语言:javascript
复制
$domain = 'mydomain.com';

$uri = urldecode('/files/test.pdf');

$ip = $_SERVER['REMOTE_ADDR'];

$secure_text = ' enigma';

function getSecureHash($ip, $uri, $secure_text, $expires){
 
 $str = $expires.$uri.$ip.$secure_text;
 
 $tmp = md5( $str, true );
 
 $tmp = base64_encode( $tmp );

 return str_replace( array('+', '/', '='), array('-', '_', ''), $tmp );

}

$url = "$domain$uri?md5=".getSecureHash($ip, $uri, $secure_text, $expires)."&expires=$expires";

echo $ip; 
echo "</br>";
echo "</br>";
echo "</br>";
echo $url;

有了这个代码,我总是被禁止使用403。但是,当我从NGINX和PHP中删除IP时,它可以工作,但我希望创建一个基于IP的唯一链接。

如有任何指导,将不胜感激。

我在跟踪此链接

EN

回答 1

Stack Overflow用户

发布于 2022-11-19 18:43:54

如果您在CF缓存下,请尝试

if(isset($_SERVER'HTTP_CF_CONNECTING_IP')){$ip =$_SERVER‘’HTTP_CF_CONNECTING_ip‘;}{$ip=$_SERVER’‘REMOTE_ADDR’;}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74459333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档