2015-04-24 63 views
2

是否有任何方法來確定從哪個來源調用API?源參考IOS應用程序,Web應用程序如頁面或按鈕點擊(Aja​​x調用等)。有沒有一種方法可以檢測API被調用的來源?

儘管在調用api時可以保存一個像(?source = ios或?source = webapp)這樣的標誌,但我只是想知道是否還有其他更好的選擇來完成此任務?

我也覺得這個要求很奇怪,因爲一般應用程序或Web應用程序被n個用戶使用,所以很難監視那些很多API調用。

請給出您寶貴的建議。

回答

4

沒有完美的方法來解決這個問題。指定一個特殊的標誌並不能解決你的問題,因爲消費者可以放入任何她想要的東西,而且你不能確定它是否合法。如果你爲不同的消費者發行不同的API密鑰,情況也是如此 - 你永遠不知道他們是否決定切換它們。

我想到的唯一選擇是分析HTTP標頭並查看您可以從中推斷出什麼。正如你可能知道一個典型的HTTP標頭看起來是這樣的:

enter image description here

你可以試試,看看來自所有來源的請求是如何在你的情況有所不同,並決定是否能夠可靠區分它們。如果您有開發客戶端的豪華(即,這不是公共API),則可以爲不同的來源設置自定義用戶代理字符串。

但請記住,Referrer不是必需的,因此它不是非常可靠,用戶代理也可能被欺騙。所以這是一個比沒有好的解決方案,但它不是100%可靠的。

希望這有助於,這裏也是一個similar question。祝你好運!

+0

很好解釋@Plamen感謝您節省時間幫助我。我肯定會深入研究它。 :-) –

+0

@ Ramaraju.d很高興爲您服務!如果你真的找到我的答案有用,請將它標記爲:)並讓我知道我是否可以進一步幫助你。 –

相關問題