我正在使用REST API爲我的應用程序創建PHP後端。限制對REST API的訪問
我想阻止其他腳本訪問我的API。我想用$ _SERVER ['HTTP_REFERER']來避免它們。但是,in what situation does the HTTP_REFERER not work?,說我們不能依靠這一點。
是否有任何其他方式來限制我的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用戶/密碼認證。