【发布时间】:2010-10-25 18:10:37
【问题描述】:
我有一个从我新创建的 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 仅从我的域而不是远程用户调用一样简单?
【问题讨论】:
-
只是为了澄清,你是想让它只有你的服务器可以使用 API,还是只有从你的服务器查看网站的人?
-
我的 JSON api 位于:example.com/json?... 我只希望我的网站 example.com 能够从我的 JSON api 中检索结果。
-
只是出于好奇,您为什么要这样做?这有点违背网络的规律,所以很高兴知道这个要求背后的原因。
-
因此,您将发出多个服务器请求,并使用解释的 javascript 将页面拼凑在一起,而不是浏览器向服务器发出单个请求并将页面构建在高端服务器上使用微不足道的客户端。我希望结果对你来说更快。附言这只是半开玩笑
-
@Darrel:这真的取决于规模和功能。在规模上,我们中的一些人必须处理由 CDN 提供的静态 HTML、JSON 被适当缓存、陈旧时、由无状态、非粘性集群提供服务等等。在这些规模上,每个客户端一台微不足道的上网本或智能手机的性能使每个并行会话可用的服务器内核的 0.1-0.01% 相形见绌。