我有一个内部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,如何解决此问题?
在您的配置中,您可以使所有人访问您的上传目录。
您必须删除此内容,或仅允许您的IP。
但是,在您的情况下,您想要的是允许用户上传和下载他们允许的文件。这意味着您希望他们的http请求能够上传/下载文件。这些http请求不会直接访问上传目录,但会调用您的php应用程序。
然后是您的php应用程序,它将能够上载到此目录(然后写入此目录)并从该目录读取。为此,您必须使用类似的命令(使用chmod和/或chown)来授予apache用户运行进程的读/写权限。
最后,您必须编写一个PHP控制器以处理上载和下载调用。这些php代码将在您的上传目录中写入和读取。