【发布时间】:2010-12-17 21:57:02
【问题描述】:
我正在像这样从 ajax 调用 php 代码:
ajaxRequest.open("GET", "func.php" + queryString, true);
由于这是一个获取请求,任何人都可以通过简单地检查标头来查看它。传递的数据不敏感,但可能会被滥用,因为获取参数名称也很简单。
如何防止直接访问 http://mysite/func.php 却允许我的 ajax 页面访问它?
我也尝试了posted here 的解决方案,但它对我不起作用 - 总是收到“未预先允许直接访问”消息。
【问题讨论】:
-
所以您基本上希望您的脚本可以通过 AJAX 访问,但如果我输入 URI 则不是?
-
您发布的链接中描述的 .htaccess 是否有不能使用的原因?
-
Zarembisty:在这种情况下,.htaccess 不是一个选项。即使他们使用的是 apache。该页面必须对 http 请求可用,因为它必须通过 AJAX 可用。如果你阻止它,你也会阻止 AJAX
-
@Palantir - 当然 .htaccess 是一个选项 - 您可以阻止除您自己的服务器之外的所有内容的访问;显然,这不是 IIS 的选择,但对于 apache,它是一个可行的替代方案
-
@themerlinproject - 确实是旧线程。我不知道当我发布这些 cmets 时脑子里在想什么,但我完全同意如果要从客户端使用 AJAX,.htaccess 不是一个选项。