2013-03-04 15 views
0

爲清楚起見想象這個場景服務器的IP地址:PHP:獲取其中用戶點擊的鏈接重定向到我的外部網站

  • 用戶是siteA.com
  • 在鏈接上點擊的用戶引導到我的網站: siteB.com
  • 我的網站希望在獲取請求時確定siteA.com的IP地址,以便它知道鏈接到此請求的服務器的IP。

有什麼辦法可以用PHP和Apache做到這一點嗎?如果沒有,有沒有辦法做到這一點?

<?php 

// Perhaps something like: 
$linking_server_ip = $_SERVER[LINKING_SERVER_IP]; 

?> 

編輯:

所以$ _ SERVER [「HTTP_REFERER」]不能依靠,但我可以隨便使用我猜(補充/伺機信息表明,引薦ISN」如果它不是空的,也許,儘管它聽起來像是不可靠的,儘管任何插件客戶端仍然可能破壞價值,但合法推薦似乎來自其他服務器)。

我還是離開了這個問題:

我需要驗證服務器指特定網頁上我的網站(充當該服務器的證書)。

E.G.他們的頁面有一個鏈接到certificate.php?serverid = 1234

我想驗證他們沒有欺騙系統並在他們的任何其他服務器上使用這個證書(例如使用siteA的siteC證書並避免支付也應該在siteC上完成的服務)。

即使使站點http服務器的原始解決方案對我的服務器(siteB)獲得一次性使用令牌以便在certificate.php上進行驗證,他們也可以使用siteA來獲取每個令牌時間他們的其他網站需要一個令牌進行驗證,以便他們可以作弊驗證並申請siteA證書。

+1

你的問題是完全不同的,我會刪除我的答案,因爲它沒有意義了。 – Tchoupi 2013-03-04 19:48:22

+0

啊,對不起,我最初認爲只檢查$ _SERVER值的簡單解決方案可以解決問題。現在,我意識到這是不行的,我已經支持了我的實際問題。 也許我應該發佈一個新的問題?像這樣徹底改變它有點不公平。 – 2013-03-04 19:51:35

+1

不要擔心:)但是,如果帖子的原始含義發生變化,發佈新問題是一種更好的做法,尤其是如果您已經有答案的話。 – Tchoupi 2013-03-04 19:58:07

回答

2

HTTP Referer標題(是的,這就是拼寫!)告訴你這一點。它可在您的PHP腳本中以$_SERVER['HTTP_REFERER']的形式獲得。

(但請注意,不能保證所有的瀏覽器將提供它,並且它可以被欺騙,不要用它來執行任何安全策略。)

相關問題