【问题标题】:Best way to get URL of site using your JSON API使用 JSON API 获取网站 URL 的最佳方法
【发布时间】:2014-03-30 14:44:31
【问题描述】:

我正在使用 PHP 和 json 来制作 API,我想限制对它的访问。 最用户友好的方式(在我看来)是每个用户的 APIKey。 我想做的是检查谁在使用/请求 json,然后我可以检查该站点的密钥(我知道如何做最后一部分)。 (密钥将附加到站点 url ?key=KEY)

我试过了

$_SERVER['HTTP_REFERER'];

但显然,如果您被重定向到我的网站,这只会显示最后一个网站。

我希望这不是太主观,而且我真的不知道如何以任何其他方式解释这一点。希望有人能理解我想要做什么,也许有更好的解决方案? 我对制作 API 至少是有限的有点陌生。 谢谢!

【问题讨论】:

  • GET URL parameter in PHP的可能重复
  • 您通常使用身份验证(就像您提到的密钥)和 IP 地址白名单来保护您的 API
  • 可能使用 $_SERVER['HTTP_HOST']
  • 谢谢,我会调查这一切! :) 如果我的问题有点难以回答,我也很抱歉,我在解释它时遇到了一点问题!

标签: php json api


【解决方案1】:

引荐来源网址由网络浏览器设置,为您提供用户在访问您的网站之前浏览的最后一页。如果您使用 API 密钥对站点进行身份验证,并且该站点将 API 密钥嵌入到他们的 JS 代码中,以便访问者可以直接访问您的 API,则使用 API 密钥和引用者进行速率限制将允许攻击者对您的 API 进行 DOS,直到特定站点已被限速(因为攻击者知道 API 密钥,并且引用者很容易被欺骗)。

【讨论】:

  • 不管是否有人知道 apikey,因为数据库会检查使用该密钥的页面是否与表中的相同。您知道使用 json 获取网站的安全方法吗?
  • 如果第三方站点使用您的 API 并从其服务器端代码发送请求,您可以检查请求来自的 IP。如果该第三方站点的用户将直接查询您的 API,则无法检查他们使用的站点是否来自(除了检查他们使用的 API 密钥)。
  • 我想要请求中的 IP,是的。某些网站将具有访问权限(受信任的网站),来自这些网站的用户将无法从他们的网站进行查询。
猜你喜欢
  • 1970-01-01
  • 2013-05-09
  • 2011-10-09
  • 2012-06-20
  • 2018-03-10
  • 2016-10-15
  • 2013-04-14
  • 1970-01-01
  • 2018-03-26
相关资源
最近更新 更多