[英]PHP: Get IP address of server where user clicked a link redirecting to my external site
為清楚起見,請想象一下
有沒有辦法用PHP和Apache做到這一點? 如果沒有,有什么辦法可以做到這一點嗎?
<?php
// Perhaps something like:
$linking_server_ip = $_SERVER[LINKING_SERVER_IP];
?>
編輯:
所以$ _SERVER ['HTTP_REFERER']不能依賴,但我可以隨意使用它(補充/機會信息表明引用者不是來自預期的端點,如果它不是空的可能。雖然它聽起來因為即使這樣也是不可靠的,因為任何插件客戶端仍然可以破壞價值,使得合法推薦似乎來自其他服務器)。
我還有這個問題:
我需要驗證服務器引用我站點上的特定頁面(它充當該服務器的證書)。
EG他們的頁面有一個指向certificate.php?serverid = 1234的鏈接
我想驗證他們沒有欺騙系統並在其他任何服務器上使用此證書(例如,使用siteA的siteC證書並避免支付應該在siteC上完成的服務)。
即使使用siteA http服務器的粗略解決方案請求我的服務器(siteB)獲取一次性使用令牌以便在certificate.php上進行驗證,他們也可以使用siteA每次其他站點時獲取令牌需要一個令牌進行驗證,以便他們可以欺騙驗證並為siteA申請證書。
HTTP Referer
標頭(是的,這就是拼寫的方式!)告訴你這個。 它在您的PHP腳本中可用作$_SERVER['HTTP_REFERER']
。
(但請注意,並不能保證所有瀏覽器都會提供它,並且它可以被欺騙。不要使用它來強制執行任何安全策略。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.