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

标签 php apache permissions

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

最佳答案

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

但是,有很多托管公司只允许您访问网络根目录。为了仍然阻止对文件的 HTTP 请求,请将它们自己放入一个目录中,并带有一个阻止所有通信的 .htaccess 文件。例如,

Order deny,allow
Deny from all

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

关于php - 阻止通过 http 直接访问文件,但允许 php 脚本访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2679524/

相关文章:

php - 是否可以对多个包使用相同的 TreeBuilder 根

php - 无法使用 mysqli 发布数据

apache - 为什么 DBCPConnectionPool 服务中的 ExpressionLanguageScope 仅限于 'VARIABLE_REGISTRY' 而不是 ' FLOWFILE_ATTRIBUTES' ?

javascript - 在使用 React 构建的网站中提供另一个(独立)页面或静态文件

amazon-web-services - AWS Lambda 无权执行权限中列出的操作

php - 扩展文件系统

linux - Apache2 运行 perl 脚本作为目录索引

mysql - Docker - 无法启动mysql权限错误

ruby - Codekit文件权限问题(只读文件系统@dir_s_mkdir -/.sass-cache)

php - 列出 channel 中已安装的包