阻止通过 http 直接访问文件,但允许 php 脚本访问
2022-08-30 08:32:24
我正在将我的文件(pdf,doc,flv等)加载到缓冲区中,并使用脚本将它们提供给我的用户。我需要我的脚本能够访问该文件,但不允许直接访问它。实现这一目标的最佳方法是什么?我应该使用我的权限执行某些操作还是使用 .htaccess 锁定目录?
我正在将我的文件(pdf,doc,flv等)加载到缓冲区中,并使用脚本将它们提供给我的用户。我需要我的脚本能够访问该文件,但不允许直接访问它。实现这一目标的最佳方法是什么?我应该使用我的权限执行某些操作还是使用 .htaccess 锁定目录?
最安全的方法是将要保留的文件放在Web根目录之外,就像Damien建议的那样。这之所以有效,是因为 Web 服务器遵循本地文件系统特权,而不是其自身特权。
但是,有很多托管公司只允许您访问Web根目录。若要仍然阻止对文件的 HTTP 请求,请使用阻止所有通信的 .htaccess 文件将它们单独放入目录中。例如
Order deny,allow
Deny from all
您的 Web 服务器以及服务器端语言仍将能够读取它们,因为目录的本地权限允许 Web 服务器读取和执行文件。
这就是我阻止从URL直接访问我的ini文件的方式。将以下代码粘贴到根目录下的文件中。(无需创建额外的文件夹).htaccess
<Files ~ "\.ini$">
Order allow,deny
Deny from all
</Files>
我的文件在根目录上,如果没有此代码,可以访问 www.mydomain.com/settings.inisettings.ini