php - 有什么方法可以防止AJAX页面在浏览器中单独查看吗?

标签 php ajax security

例如,当我想用​​ AJAX 更新我的页面的一部分时,我通常会适本地调用 getPost.php,它会返回要插入到我的页面中的标记。有没有什么方法可以阻止用户直接访问此页面(例如:example.com/getPost.php,使用适当的 GET 或 POST 参数)并仅获取页面的一部分,因为这应该与 AJAX 一起作为整体的一部分使用,不是一个人吗?

我不认为可以在文件上设置权限,因为它是请求页面的客户端,但是有没有办法通过传递一个额外的参数来实现这一点,该参数可以用作各种校验位。

最佳答案

您可以查看请求 header 并强制要求必须为 AJAX 请求设置 header (通常人们使用 X-Requested-WithXMLHttpRequest 这样的值>).请注意,除非您在发出 AJAX 请求时自行设置(或使用自动执行此操作的 Javascript 库),否则不会设置此 header 。但是,无法保证有人不会根据需要自行添加该 header 。

X-Requested-With header 值可以在 $_SERVER['HTTP_X_REQUESTED_WITH'] 中找到。

关于php - 有什么方法可以防止AJAX页面在浏览器中单独查看吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3580220/

相关文章:

php - 异步数据加载后获取网页来源

ajax - 更新与点击事件触发 JQuery AJAX 请求关联的 HTML 元素

javascript - 单击第二个按钮后服务器端的隐藏字段会更新

linux - 如何查看未知.py 进程的内容?

ios - iOS 10.3 中证书透明度的 Cordova SSL 错误

PHP int to date 问题

php - 上传图片的权限被拒绝

javascript - 语法错误 : Unexpected token C in JSON at position 0 - Ionic 2 Http GET request

javascript - 如何使用自定义 header 进行 AJAX POST 跨域

javascript - 如何使用 javascript 设置 cookie 安全标志