限制对REST API的访问

时间:2012-02-04 11:26:43

标签: api rest http-referer

我正在使用REST API为我的应用程序制作PHP后端。

我想阻止其他人的脚本访问我的API。我想过使用$ _SERVER ['HTTP_REFERER']来避免它们。但是,in what situation does the HTTP_REFERER not work?,我们说不能依赖它。

还有其他方法可以将我的API限制为仅限我的客户端吗?

3 个答案:

答案 0 :(得分:3)

因此,您可以按照Marcin的建议实施HTTP基本身份验证。或者,您可以按照HQarroum的建议实施OAuth。前者更容易实现。对于HTTP BASIC,来自客户端的请求如下所示:

.. https:// 用户名:密码 @ yourbackend.host.com / resource / method / foo / bar ..

实现HTTP基本身份验证非常简单。在Apache中,请参阅this。对于nginx,请参阅this

关于OAuth,这实现起来有点复杂。如果您正在研究OAuth,并且您不需要不同的范围(访问不同级别的数据的授权级别),那么您应该实现两条腿的OAuth流程。但是,如果您是受保护资源的唯一消费者,我确实认为OAuth可能过度。

我建议在所有情况下都使用SSL(https)。

的问候,
尼尔
http://developer.mashery.com

答案 1 :(得分:1)

您应该查看OAuth协议,并使用您的API为客户端实施。

答案 2 :(得分:1)

您可以使用普通的HTTP用户/通过身份验证。