2012-12-08 38 views
2

我創建一個REST API服務器域名,一個域名只適用所以基本上一個API密鑰,如何獲得訪問誰

例如:API_KEY 0kjs9s9s9僅適用於mysite.com

這是出於安全目的,所以0kjs9s9s9只能從mysite.com訪問。

那麼這個問題,如何獲取訪問該頁面的域名? 當我打印時,print_r($_SERVER),我只收到一個關於誰在請求頁面的信息'REMOTE_ADDR',它是一個IP。從一些地方閱讀後,我發現,我可以使用gethostbyaddr($_SERVER['REMOTE_ADDR']) 但我不確定這是正確的方式。 請任何機構給我和這個問題的例子代碼。

如果mysite.com在代理和負載均衡器場中運行,該怎麼辦?我會得到哪個IP?代理或域名?

有人可以用假域發送請求嗎?

在此先感謝

+0

在談論域時,你似乎在談論瀏覽器中的腳本?如果是這樣,那麼我認爲你只能依靠一些JavaScript欺騙來做到這一點,即使這樣,它也可能是使用服務器端調用僞造的。在[REST驗證和公開API密鑰]處查看我的答案(http://stackoverflow.com/questions/5472668/rest-authentication-and-exposing-the-api-key/13891103#13891103)。對於服務器端請求,您需要向API用戶詢問將使用API​​的服務器IP地址。 – Arjan

回答

1

遠程IP不一定會解決。代理和NAT設備可能會顯示自己的IP地址;如果始發設備自己擁有公共IP地址,它可能不會有。