【发布时间】:2019-03-15 09:55:48
【问题描述】:
我使用此代码禁止直接访问 php 文件
if (__FILE__ == $_SERVER['DOCUMENT_ROOT'].$_SERVER['PHP_SELF']){
die("Direct access forbidden");
}
我的问题是我需要这样调用 php
xmlhttp.open("GET","getverse.php",true);
它还会返回Direct access forbidden 错误。
如何在不允许从浏览器直接访问的同时允许对 php 文件的调用?
谢谢
【问题讨论】:
-
您可以建立某种身份验证协议,但最终的 HTTP 请求是 HTTP 请求。如果您的网站响应 ajax (HTTP) 请求,它可能会被欺骗以响应 Internet 上任何 HTTP 客户端的请求。
-
考虑一下您要执行的操作...您希望在允许访问的同时禁止访问。是时候重新考虑您要解决的问题了。用户是否有权访问此服务?您实际上试图阻止用户做什么?为什么?
-
@David,我想我已经提到了不同的场景。
xmlhttp.open("GET","getverse.php",true);正在从我想要允许的 javascript 文件中调用。不允许从浏览器地址栏直接访问 php 文件。我希望有一些方法可以使这两个从技术角度有所不同,并禁止直接浏览器访问 -
@Wayne:但是为什么?你想阻止什么?考虑基本目标,而不是当前尝试的实现。那是什么目标?这种尝试很有可能不是实现该目标的正确方法。但你问的不是目标,而是尝试。
-
@David,我想我明白你的意思。谢谢。这是一个非常好的观点。
标签: javascript php ajax