我正在使用REST API为我的应用程序制作PHP后端。
我想阻止其他人的脚本访问我的API。我想过使用$ _SERVER ['HTTP_REFERER']来避免它们。但是,in what situation does the HTTP_REFERER not work?,我们说不能依赖它。
还有其他方法可以将我的API限制为仅限我的客户端吗?
答案 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用户/通过身份验证。