限制对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用户/密码认证。