【发布时间】:2010-12-20 00:32:19
【问题描述】:
有些脚本我只通过 ajax 使用,我不希望用户直接从浏览器运行这些脚本。我使用 jQuery 进行所有 ajax 调用,并将所有 ajax 文件保存在一个名为 ajax 的文件夹中。
所以,我希望创建一个 htaccess 文件来检查 ajax 请求 (HTTP_X_REQUESTED_WITH) 并拒绝该文件夹中的所有其他请求。 (我知道可以伪造 http 标头,但我想不出更好的解决方案)。我试过这个:
ReWriteCond %{HTTP_X_REQUESTED_WITH} ^$
ReWriteCond %{SERVER_URL} ^/ajax/.php$
重写规则 ^.*$ - [F]
但是,它不起作用。我做错了什么?有没有其他方法可以达到类似的结果。 (我不想检查每个脚本中的标题)。
【问题讨论】:
-
“(我不想检查每个脚本中的标题)” - 你能解释一下为什么不吗?我会说为所有 ajax 请求制作一个通用的包含文件或一个单独的类是非常有意义的。
-
脚本已经写好了,数量很多。
-
我之前在这里看到过类似的帖子,我会质疑(就像我之前所做的那样)你为什么要限制人们直接访问 AJAX 文件?有什么顾虑?非登录用户会得到敏感数据?老实说,我对保护 ajax 文件的理由感到困惑,除非被 javascript 调用。
标签: php jquery apache .htaccess