只允许从同一服务器上的特定PHP文件/目录访问文件


Allow access to file ONLY FROM specific PHP file/ dir on same server

我一直在努力寻找拒绝所有AJAX/PHP/浏览器请求访问文件的解决方案,除非它们来自同一服务器上的一个(另一个)目录/文件我在JSON文件的目录中有一个.htaccess。该文件由CMS插件获取,如下所示(相当标准):

  1. Javascript对服务器上的一个名为handler.php的PHP文件进行AJAX调用
  2. handler.php然后检索文件的内容并将其返回给JS

我不能使用重写规则,因为这不是一个前提条件。用于CMS。我也不能设置一个已知的域名,因为它是动态的。理想情况下,我会做Allow from SELF
我尝试了以下.htaccess配置,但没有成功:

Order Deny, Allow
Deny from all
Allow From <ownDomainName/subpath>

或者:

Order Deny, Allow
Deny from all
Allow From <ownDomainName/subpath/fileName.ext>

我也尝试了使用setEnv指令,以及混合使用<Files><Directory><Location>的其他指令。如果我只是Deny from All,PHP就无法访问它。有什么解决方案可以限制对JSON文件的访问吗?此外,这与我在localhost上测试的事实有什么关系吗?

有两种类型的文件访问。

  1. 在web中,应用.htaccess规则或服务器(apache)配置
  2. 通过在应用文件系统权限的服务器计算机上运行的应用程序或脚本

所以您可以拒绝.htaccess文件中的所有请求,但PHP脚本仍然可以通过FS访问该文件(取决于FS权限)。