限制从Web浏览器访问文件夹,但只能通过我的网站访问

问题描述 投票:0回答:1

我有一个内部Web服务器,上面配置了ubuntu和Apache。我已经获得对/ opt / data_upload的访问权限,因此我可以利用此目录来保存从PHP上传的图像,并通过Ajax Get Request取回它。

/etc/apache2/apache2.conf中的我的Apache配置看起来像这样

Alias /data_uploads "/opt/data_uploads/"

<Directory "/opt/data_uploads/">
        Options Indexes FollowSymLinks MultiViews
        Require all granted
        AllowOverride all
        Order allow,deny
        Allow from all
</Directory>

但是问题是,当我从浏览器执行http://123.45.67.89/data_uploads时,所有人都可以完全访问它,这很危险,任何人都可以看到在那里上传的图像。

为了避免这种情况,我现在尝试Require all denied我得到403,但是我所有的Ajax获取请求也都失败了。

现在我想让我的网站访问它,但是如果有人尝试访问http://123.45.67.89/data_uploads应该说403,如何解决此问题?

php apache2
1个回答
0
投票

在您的配置中,您可以使所有人访问您的上传目录。

您必须删除此内容,或仅允许您的IP。

但是,在您的情况下,您想要的是允许用户上传和下载他们允许的文件。这意味着您希望他们的http请求能够上传/下载文件。这些http请求不会直接访问上传目录,但会调用您的php应用程序。

然后是您的php应用程序,它将能够上载到此目录(然后写入此目录)并从该目录读取。为此,您必须使用类似的命令(使用chmod和/或chown)来授予apache用户运行进程的读/写权限。

最后,您必须编写一个PHP控制器以处理上载和下载调用。这些php代码将在您的上传目录中写入和读取。

© www.soinside.com 2019 - 2024. All rights reserved.