php - 如何限制 JSON 访问?

我有一个从我新创建的 JSON API 中提取数据的 Web 应用程序。

我的静态 HTML 页面通过 JavaScript 从静态 HTML 页面动态调用 JSON API。

如何限制对我的 JSON API 的访问,以便只有我(我的网站)可以从中调用?

如果有帮助,我的 API 类似于:http://example.com/json/?var1=x&var2=y&var3=z ...根据查询生成适当的 JSON。

我正在使用 PHP 来生成我的 JSON 结果...限制对 JSON API 的访问是否可以像检查 $_SERVER['HTTP_REFERER'] 以确保 API 仅是从我的域而不是远程用户调用的?

最佳答案

我认为您可能误解了从用户的浏览器而不是从您自己的服务器发起 JSON 请求的部分。静态 HTML 页面被传递到用户的浏览器,然后它转身并执行页面上的 Javascript 代码。此代码打开一个新连接返回到您的服务器以获取 JSON 数据。从您的 PHP 脚本的角度来看,JSON 请求来自外部世界的某个地方。

鉴于上述机制,您无法阻止任何人在您的 HTML 页面上下文之外调用 JSON API。

https://stackoverflow.com/questions/856045/

相关文章:

javascript - typescript 对象序列化?

c# - Json.NET:反序列化嵌套字典

python - 类型错误 : b'1' is not JSON serializable

json - 使用 UTF-8 编码的 Jackson ObjectMapper?

json - 修改来自 Spring Boot Rest Controller 的默认 JSON 错

json - JSON 格式的 Amazon S3 响应?

java - 是否有将 Java POJO 转换为 JSON 和 XML 的库?

python - 将输出序列化为 JSON - ValueError : Circular refe

java - 最新的 org.json

java - 使用 jackson 删除 JSON 元素