【发布时间】:2015-02-20 21:15:01
【问题描述】:
我一直在努力寻找一种解决方案来拒绝访问所有 AJAX/PHP/浏览器内请求的文件,除非它们来自同一个(其他)目录/文件服务器。 我在 JSON 文件的目录中有一个 .htaccess。该文件由 CMS 插件获取,如下所示(非常标准):
- Javascript 对服务器上名为
handler.php的 PHP 文件进行 AJAX 调用。 -
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 上进行测试有关吗?
【问题讨论】:
-
您的问题是“我无法设置已知域名”,但是在您的两个示例中,您引用了一个域名?
-
@greg_diesel 你的问题很中肯,但我尝试了我找到的可能的解决方案,但这些都不允许使用“通配符”,例如某些东西。像
$_SERVER['SERVER_ADDR']for PHP... -
如果 header.php 正在打开 yourfile.json 并将结果输出到 ajax 客户端...用户可以在浏览器中读取 header.php 的结果(这是您的秘密 json),只需稍微调查一下。
-
看起来首先你需要了解 HTTP 请求与通过文件系统访问文件之间的区别。
-
这就是我刚刚所做的!我通过 URL 而不是 FS 相对路径发送数据,因为我将
.htaccess设置为Allow from allshame,这恰好在之前起作用。现在都好了