0
我有一個API服務器,我想實現一個私人API密鑰。公共API密鑰背後的想法是在Web應用程序的javascript應用程序ajax調用中使用它們。爲了充分驗證我想確保其來自的域名位於受信任域列表中的密鑰。PHP:如何獲得ajax請求的主機?
我該如何獲得這種呼叫的主機名?
我有一個API服務器,我想實現一個私人API密鑰。公共API密鑰背後的想法是在Web應用程序的javascript應用程序ajax調用中使用它們。爲了充分驗證我想確保其來自的域名位於受信任域列表中的密鑰。PHP:如何獲得ajax請求的主機?
我該如何獲得這種呼叫的主機名?
您的API服務器會檢查$_SERVER['REMOTE_ADDR']
。這會讓你獲得客戶的IP。如果您正在進行基於主機名的過濾,則必須執行反向DNS查找以將該IP映射回主機名(例如),但並非所有IP都具有定義的反向映射。
謝謝你的回答!這是否適用於Ajax調用?我正在使用gethostbyaddr,但不會$ _SERVER ['REMOTE_ADDR']是客戶端(用戶而不是服務器)的IP? PHP文檔中提到了REMOTE_ADDR「用戶正在查看當前頁面的IP地址」。 http://php.net/manual/en/reserved.variables.server.php。然後,我將爲用戶獲取IP,並且不會得到有效的域,即使我針對IP地址進行驗證,我也沒有有效的IP。我是對的?還是有什麼我失蹤? – Onema
ajax調用只是在瀏覽器的後臺完成的普通http調用。 ajax調用和常規的「點擊鏈接」或「提交表單」請求之間沒有服務器端差異。您仍然可以獲取用戶機器的IP或者他們正在經過的NAT網關(例如,他們的家庭DSL /電纜調制解調器/路由器)。 –