Назад | Перейти на главную страницу

Безопасный модуль nginx link с проблемами php?

Конфигурация Nginx

server {
listen  80;
server_name 173.249.40.xxx;

root /var/www/files.com/html;
index  index.html index.htm;

location / {        
    try_files $uri $uri/ =404;
}

location /securetest {
    alias /var/www/files.com/html;
    secure_link $arg_md5,$arg_expires;
    secure_link_md5 "$secure_link_expires$uri$remote_addr the_secret_key_configured_in_nginx";

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


error_page  500 502 503 504  /50x.html;
location = /50x.html {
    root  /usr/share/nginx/html;
 }
}

Файл PHP

function buildSecureLink($baseUrl, $path, $secret, $ttl, $userIp)
{
    $expires = time() + $ttl;
    $md5 = md5("$expires$path$userIp $secret", true);
    $md5 = base64_encode($md5);
    $md5 = strtr($md5, '+/', '-_');
    $md5 = str_replace('=', '', $md5);
    return $baseUrl . $path . '?md5=' . $md5 . '&expires=' . $expires;
}
$secret = 'the_secret_key_configured_in_nginx';
$baseUrl = 'http://173.249.40.xxx';
$path = '/securetest/'.$filename;
$ttl = 120; //no of seconds this link is active 
$userIp = '39.47.109.140';
$secure_Link_created = buildSecureLink($baseUrl, $path, $secret, $ttl, $userIp);
redirect($secure_Link_created);

Вот в чем проблема: когда я пишу точный путь к файлу, каждый может получить доступ к файлу, а я хочу, чтобы ссылка была доступна только для моего веб-сайта. какой будет URL-адрес для доступа к файлу, я тоже не понимаю. http://173.249.40.xxx/nj_folder/myfile.zip или http://173.249.40.xxx/securetest/myfile.zip

Когда я пытаюсь получить доступ к файлу с помощью securetest URL, он выдает ошибку 404. Код перенаправления также создает ссылку, но работает для всех и имеет точный полный путь http://173.249.40.xxx/nj_folder/myfile.zip?md5=NajZUYdhb5z6hXZ6O-9nKQ&expires=1522343848 Полный путь должен быть скрыт, что мне не хватает? Пожалуйста, объясните это подробно.

Спасибо