限制对REST API的访问

问题描述:

我正在使用REST API为我的应用程序创建PHP后端。限制对REST API的访问

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

是否有任何其他方式来限制我的API只有我的客户?

因此,您可以实现Marcin建议的HTTP基本认证。或者,您可以按HQarroum的要求实施OAuth。前者更容易实施。对于HTTP BASIC,从您的客户端请求是这样的:

.. https://开头用户名:密码 @ yourbackend.host.com /资源/方法/富/酒吧..

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

关于OAuth,这是一个更复杂的实现。如果您正在查看OAuth,并且您不需要不同的范围(访问不同级别的数据的授权级别),那么您应该实施两段式OAuth流程。但是,如果您是受保护资源的唯一使用者,我确实相信OAuth可能会过度使用。

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

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

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

您可以使用普通的HTTP用户/密码认证。