如何确保人类不会查看PHP脚本URL的结果?

Jas*_*vis 3 php

如何确保人类不会查看PHP脚本URL的结果?

最近,当查看正在进行AJAX调用的站点的源时,我尝试按照浏览器中的链接进行操作

www.site.com/script.php?query=value
Run Code Online (Sandbox Code Playgroud)

我没有看到我期望看到的结果,而是看到一条消息,说明只有脚本才能查看该页面.

如何将脚本限制为仅允许脚本访问它?

更新:

这是页面DEMO页面

Joh*_*her 10

简短的回答:你做不到.

答案很长:通过在HTTP请求中要求特殊的标头值,你可以更难做到这一点(设置Accept to application/json是常见的).在服务器端,只需检查以确保标头设置为您期望的值.这将使常规用户获得您提到的消息,并且您的脚本将正常工作.当然,高级用户将能够轻松解决这种限制,因此不要依赖它来提高安全性.


Tim*_*Tim 9

使用php,您可以检查并仅在通过ajax调用页面时显示结果

function isAjax() {
    return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'));
}

if(isAjax()) {
    // display content
} else {
    // not ajax, dont show
    echo 'Invalid Request';
}
Run Code Online (Sandbox Code Playgroud)


Sch*_*els 6

你不能.人类总是可以欺骗请求.您可以使用post变量发送您的请求,以确保人不会意外地在页面上结束.