linux - 防止直接访问 PDF 文件 - Nginx

标签 linux pdf nginx server

最近我为我的网站更换了服务器。在我使用 Apache 服务器之前。现在我的网站在 Nginx 服务器上运行。这就是为什么我不能再使用 .htaccess 的原因了。

我想阻止用户通过在浏览器中键入文件链接来打开某些 pdf 文件。我希望他们能够通过单击我网站上文件的链接来打开文件。到目前为止,我使用了下面的代码;它在防止盗链图像方面效果很好,但不会阻止直接访问 pdf 文件。

location ~ /folder/with/pdffiles/(.+\.(?:jpg|pdf|jpeg|gif|png|bmp|ic$

valid_referers none blocked server_names *.mydomain.com mydomain.* ~\.mydomain\.;
       if ($invalid_referer) {
         return 444;
        }
        try_files $uri @ghost;
}

最佳答案

虽然你可以这样做:

if ($http_referer = "") { return 403; }

在您的 nginx 位置内部,如果条件不是推荐的事情(请参阅 If is Evil )。

今天的标准做法是将受限文件放在网络服务器根文件夹之外(不管它是什么 - Apache 或 nginx),并通过可以执行任何操作的服务器端脚本提供文件 –不仅检查引荐来源网址,还可能检查用户 session 或身份验证。

关于linux - 防止直接访问 PDF 文件 - Nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37713946/

相关文章:

.net - 如何以编程方式为 Acrobat/Reader XI 或 DC 启用/禁用 'Display PDF In Browser' 以与 Adob​​e ActiveX 控件一起使用

使用 docker run 命令的 Docker ENTRYPOINT

javascript - 在 njs (javascript) 中用连字符拆分驼峰式单词的正则表达式

ruby-on-rails - 太多重定向 : passenger+nginx SSLRequirement

android - 如何从 Assets 文件夹android在webview中显示PDF

linux - 如何在 Supervisord 下开始冲刺

c++ - Qt 5.3 QSystemTrayIcon 无法正常工作[Linux]

c++ - linux上c++的GUI调试器

c - 进程地址空间中的 Linux 变量存储 - C

ruby - Watir-Webdriver 如何使用 Watir 浏览器在 Chrome 中获取嵌入的 pdf 文本