我正在公開一個簡單的API,並且需要確保只有授權用戶才能訪問它。我將提供一個API密鑰進行身份驗證。但是,我也希望將API密鑰與某個域關聯(也就是說,它只能在授權域中使用時才能使用)。API安全:如何限制域的訪問?
如果從授權域訪問API,我該如何檢查API端? HTTP_REFERER顯然不可靠。建議?
我正在公開一個簡單的API,並且需要確保只有授權用戶才能訪問它。我將提供一個API密鑰進行身份驗證。但是,我也希望將API密鑰與某個域關聯(也就是說,它只能在授權域中使用時才能使用)。API安全:如何限制域的訪問?
如果從授權域訪問API,我該如何檢查API端? HTTP_REFERER顯然不可靠。建議?
你公開哪種API?有許多不同類型的API - 我想你不要暴露你的操作系統的API ...
假設你想揭露一些Web應用程序的API,你可以看看OAuth,這是基於在回調網址上 - 您可以阻止某些域名通過回叫網址被呼叫。
查看更多about OAuth。
這是一個Web應用程序API。 OAuth計劃用於第二個版本。任何良好的臨時解決方案? – StackOverflowNewbie 2011-05-29 23:28:31
@StackOverflowNewbie如果您現在無法使用OAuth,只需使用該特定功能(需要auth流程需要回調,如在OAuth中)。在這個階段對你來說是否足夠的解決方案? – Tadeck 2011-05-29 23:30:13
你能說說你的意思嗎? – StackOverflowNewbie 2011-05-29 23:38:20
你想要的源IP地址
REMOTE_ADDR - 或 - HTTP_X_FORWARDED_FOR
這可能是假的。 – Amber 2011-05-29 23:27:56
一旦你有這些,繼續前進,併爲該IP做一個DNS查找。 – CountScary 2011-05-29 23:28:33
你的意思是一些反向DNS查詢?如果兩個域位於同一臺服務器上並且一個域名被允許,但是第二個域名被拒絕訪問OP的服務會怎樣? – Tadeck 2011-05-29 23:31:56
HTTP + SSL是支持證書服務器和客戶端複雜的協議集,而且很可能會在此使用案件,但不知何故,我覺得這將是一個矯枉過正。
API是如何使用的?它通過JavaScript訪問? – alex 2011-05-29 23:25:28
有些可以通過JavaScript訪問(因爲它與GET協同工作),而另一些則不可以(因爲它使用POST)。 – StackOverflowNewbie 2011-05-29 23:27:51
Javascript可以做POST很好。 – 2011-05-29 23:45:14