阻止外部访问 PHP 脚本但允许 AJAX

rth*_*sen 2 php security ajax

我已经阅读了很多关于 .htaccess 规则、检查标题、使用加密等的内容。但我还没有找到我想要的确切答案。我知道假设服务器设置正确,您将无法使用 AJAX 访问我宝贵的 PHP 脚本。我尝试检查是否定义了不允许地址栏访问但也阻止了我的 AJAX 请求的访问变量。

如果我有一些用于 AJAX 调用的 PHP 脚本,有没有办法阻止地址栏访问、PHP POST(cURL 等)以及来自域外的 AJAX(假设通过跨域访问限制)?

Ult*_*nct 5

办法绝对是安全/可靠地识别请求来自哪个浏览器的一部分,从-地址栏,AJAX。有一种方法可以通过 User-Agent 标头识别通过浏览器/卷曲/等发送的内容(但不可靠)

一个快速但不太可靠的解决方案是检查以下标题。大多数浏览器通过 AJAX 调用附加它。一定要彻底研究它,并执行它。

X-Requested-With: XMLHttpRequest
Run Code Online (Sandbox Code Playgroud)

注意:如果资源至关重要,请不要相信客户端。您最好实施一些其他的访问过滤方法。请记住,任何人都可以伪造标题!