防止通过 Web 访问文件

防止通过 Web 访问文件

我的移动应用程序将从我的 Ubuntu VPS 提供图像。

基本上我将图像组织在一个文件夹中\DATA

实际情况是,每当移动应用程序需要图片时,我的后端就会收到一个请求,它会获取图片的链接并将其发送回用户,以便该链接可以在手机上打开图片。例如,http://myexamplesite.com/Data/Image001.jpg

我拥有的图像是按顺序排列的。(Image001,Image002,Image003等)。

我想要实现的是,如果有人找到链接http://myexamplesite.com/Data并尝试通过浏览器访问,拒绝他的访问。我的目标是只有通过来自移动设备的请求才能访问图像。

我正在使用服务器版本:Apache/2.4.18(Ubuntu 16.04)服务器构建于:2016-07-14 T12:32:26 MySQL:V5.7

在 Linux 上可以实现这样的事情吗?

答案1

您可以让您的移动应用设置一个唯一的“用户代理”,然后阻止来自其他浏览器的所有请求。只要人们不知道您的应用正在使用什么用户代理,这种方法就会奏效。(https://httpd.apache.org/docs/2.4/howto/access.html

Require expr %{HTTP_USER_AGENT} == 'myMobileApp'

您还可以通过简单的 PHP/Perl/Python/等脚本提供图像,该脚本要求您包含“密钥”才能获取图像。

例子:https://your.ubuntu.vps/images.php?id=image3&key=myMobileApp

还有工作提到您应该添加一个“robots.txt”文件,告诉搜索引擎不要索引该网站。(http://www.robotstxt.org/)并通过创建空白的“index.html”或在 .htaccess/ 中禁用目录浏览:

Options -Indexes

相关内容