php - 保护php页面仅在浏览器中打开

标签 php jquery ajax json permissions

我正在开发实时天气数据页面。我们的天气模块以 CSV 格式输出数据并将其存储在我的网络服务器上。然后,我使用 PHP 脚本将 CSV 转换为数组,然后将其编码为 JSON 并输出,以便我的 jQuery Ajax 脚本可以经常调用它来获取最新数据并更新页面。到目前为止效果很好。

我的问题是,如何防止用于检索 JSON 的 URL(上述 PHP 脚本的 URL)在浏览器中打开和查看?我尝试调整权限,但没有成功。

预先感谢所有愿意提供帮助的人。

最佳答案

没有真正的方法可以做到这一点,因为 Ajax 调用也来自浏览器。正确的浏览器调用和 Ajax 调用之间没有真正的区别。 GET 调用就是 GET 调用。

编辑

根据 @Adeneo 的建议,通过某种 key 实现伪安全将是让人们更难查看页面的好方法,即使没有办法从字面上阻止调用。

此外,向 Ajax 调用添加 header 并验证后端脚本中是否存在该 header 会使欺骗变得更加困难。

另一个想法是,如果每个页面 View 只调用该服务一次,您可以在服务器提供的 javascript 中设置一个 key ,以附加到您的 ajax 调用。当服务器被调用时,提供的 key 在使用后就会失效,从而防止有人使用相同的 key 两次调用服务。

关于php - 保护php页面仅在浏览器中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12708845/

相关文章:

php - SQL - 两个 worker 一次过滤

php - 接受函数作为 PHP 中的参数

javascript - 防止启动后立即触发停止事件的优雅方法

javascript - 当我需要 POST 时使用 GET 的 window.location.href

java - 如何在ajax中发送多部分/表单数据请求

php - 如何从 pinterest 获取所有图钉?仅获得 50 个引脚

php - PDO var_dump 变得错误

jquery - 安装 featherbox gallery 后,所有链接均无效且移动菜单丢失!为什么?

javascript - 在jqgrid中选择所有复选框的功能

javascript - jQuery获取textarea文本