我正在开发实时天气数据页面。我们的天气模块以 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/