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

Php 限制从web浏览器访问文件夹,但只能通过我的网站访问,php,apache2,Php,Apache2,我有一个配置了ubuntu和Apache的内部Web服务器。 我已经授予了对/opt/data_upload的访问权,这样我就可以使用这个目录保存从PHP上传的图像,并在Ajax Get请求时将其取回 我在/etc/apache2/apache2.conf中的Apache配置如下所示 Alias /data_uploads "/opt/data_uploads/" <Directory "/opt/data_uploads/"> Options Indexes Fo

我有一个配置了ubuntu和Apache的内部Web服务器。 我已经授予了对/opt/data_upload的访问权,这样我就可以使用这个目录保存从PHP上传的图像,并在Ajax Get请求时将其取回

我在
/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>
Alias/data\u uploads”/opt/data\u uploads/“
选项索引跟随符号链接多视图
要求所有授权
允许超越所有
命令允许,拒绝
通融
但问题是当我做
http://123.45.67.89/data_uploads
通过浏览器,每个人都可以完全访问它,这很危险,任何人都可以看到上传到那里的图像

为了避免这种情况,我尝试
要求所有被拒绝的
现在我得到403,但是我的所有Ajax get请求也失败了


现在我想让我的网站访问它,但如果有人试图访问
http://123.45.67.89/data_uploads
应该是403,我如何克服这个问题?

在您的配置中,您允许每个人访问您的上载目录

您必须删除此,或者只允许您的IP

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

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


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

Hi@Nico,感谢您的回答选项索引FollowSymLinks多视图要求所有拒绝允许所有越级命令允许,deny#Allow from all并使
/opt/data_uploads/
可访问
www data
现在我可以写入它,但不能直接用ajax读取它,我需要编写PHP控制器来读取它。