例如,当我想用 AJAX 更新我的页面的一部分时,我通常会适本地调用 getPost.php,它会返回要插入到我的页面中的标记。有没有什么方法可以阻止用户直接访问此页面(例如:example.com/getPost.php,使用适当的 GET 或 POST 参数)并仅获取页面的一部分,因为这应该与 AJAX 一起作为整体的一部分使用,不是一个人吗?
我不认为可以在文件上设置权限,因为它是请求页面的客户端,但是有没有办法通过传递一个额外的参数来实现这一点,该参数可以用作各种校验位。
最佳答案
您可以查看请求 header 并强制要求必须为 AJAX 请求设置 header (通常人们使用 X-Requested-With
和 XMLHttpRequest
这样的值>).请注意,除非您在发出 AJAX 请求时自行设置(或使用自动执行此操作的 Javascript 库),否则不会设置此 header 。但是,无法保证有人不会根据需要自行添加该 header 。
X-Requested-With
header 值可以在 $_SERVER['HTTP_X_REQUESTED_WITH']
中找到。
关于php - 有什么方法可以防止AJAX页面在浏览器中单独查看吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3580220/