限制从网络浏览器访问文件夹,但只能通过我的网站访问
restrict access to folder from web browser but access only through my website
我有一个内部网络服务器,上面配置了 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 get 请求也都失败了。
现在我想让我的网站访问它,但是如果有人试图访问它 http://123.45.67.89/data_uploads
应该说 403,我该如何解决这个问题?
在您的配置中,您允许所有人访问您的上传目录。
您必须删除这个,或者只允许您的 IP。
但在您的情况下,您想要的是允许您的用户上传和下载他们被允许的文件。
这意味着您希望他们的 http 请求能够 upload/download 文件。这些 http 请求不会直接访问上传目录,但会调用您的 php 应用程序。
然后是您的 php 应用程序可以上传到该目录(然后写入该目录)并从该目录读取。
为此,您必须使用 chmod and/or chown.
为 apache 用户 运行 进程授予 read/write 权限
最后,您必须编写一个 PHP 能够处理上传和下载调用的控制器。 php 代码将从您的上传目录写入和读取。
我有一个内部网络服务器,上面配置了 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 get 请求也都失败了。
现在我想让我的网站访问它,但是如果有人试图访问它 http://123.45.67.89/data_uploads
应该说 403,我该如何解决这个问题?
在您的配置中,您允许所有人访问您的上传目录。
您必须删除这个,或者只允许您的 IP。
但在您的情况下,您想要的是允许您的用户上传和下载他们被允许的文件。 这意味着您希望他们的 http 请求能够 upload/download 文件。这些 http 请求不会直接访问上传目录,但会调用您的 php 应用程序。
然后是您的 php 应用程序可以上传到该目录(然后写入该目录)并从该目录读取。 为此,您必须使用 chmod and/or chown.
为 apache 用户 运行 进程授予 read/write 权限最后,您必须编写一个 PHP 能够处理上传和下载调用的控制器。 php 代码将从您的上传目录写入和读取。