阻止通过http直接访问文件,但允许php脚本访问

Bra*_*n G 71 php apache permissions

我正在将我的文件(pdf,doc,flv等)加载到缓冲区中,并使用脚本将其提供给我的用户.我需要我的脚本才能访问该文件但不允许直接访问它.什么是实现这一目标的最佳方式?我应该使用我的权限做某事还是用.htaccess锁定目录?

Sam*_*bee 94

最安全的方法是将您想要保存的文件放在Web根目录之外,就像Damien建议的那样.这是因为Web服务器遵循本地文件系统特权,而不是它自己的特权.

但是,有很多托管公司只允许您访问Web根目录.要仍然阻止对文件的HTTP请求,请使用阻止所有通信的.htaccess文件将它们放入目录中.例如,

Order deny,allow
Deny from all
Run Code Online (Sandbox Code Playgroud)

您的Web服务器以及服务器端语言仍然可以读取它们,因为目录的本地权限允许Web服务器读取和执行文件.

干杯.

  • @sonill - 您可以白名单列出某些IP以便能够访问这些目录.例如,添加一个带有"允许来自127.0.0.1"的新行将允许您的服务器(包括任何服务器端代码)访问该目录中的文件.有关这些位的更多文档,请访问http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html#allow (4认同)
  • 当我们尝试从php脚本访问时不起作用.你有任何代码如何访问该文件 (2认同)

Aam*_*ood 33

这就是我阻止从URL直接访问我的ini文件的方法.将以下代码粘贴到.htaccessroot上的文件中.(无需创建额外的文件夹)

<Files ~ "\.ini$">
  Order allow,deny
  Deny from all
</Files>
Run Code Online (Sandbox Code Playgroud)

我的settings.ini文件位于根目录下,如果没有此代码,则可访问www.mydomain.com/settings.ini