一、代理伺服器的匿名程度區分:
透明代理(伺服器)transparent:僅單純傳送快取資料,這是代理伺服器最正規且原始的用途。它的匿名性是透明的,用戶端電腦的IP位址並不會經過隱匿,即電腦連外的IP位址是什麼、透過代理伺服器後仍然相同。
匿名代理(伺服器)anonymous:是匿名性居中的代理方式,以Anonymous的代理連線只會顯示代理伺服器的位址,達到用戶端的匿名效果。但有時也會讓伺服器無法判斷是否使用代理。
欺騙性代理(伺服器)distorting:不但匿名還改變真實IP的代理方式。但原則上告訴訪問伺服器您使用了代理伺服器,但編造虛假的隨機IP代替真實IP以欺騙它。
高匿名代理(伺服器)elite Proxy / high anonymous:在伺服器不會感覺到用戶在使用代理。編造虛假的隨機IP代替真實IP以欺騙它,理論上破綻較少。
二、回傳指令解讀:
REMOTE_ADDR用戶訪問伺服器所顯示的IP。如果使用了代理伺服器,將顯示代理伺服器的IP;若無使用代理伺服器,則顯示用戶的真實IP。
HTTP_X_FORWARDED_FOR 如果有此項資訊,說明您使用了代理伺服器,位址就是後面的資訊說明。但可依代理伺服器的匿名程度進行偽造。
HTTP_VIA 如果有這條字串資訊,一般就證明您使用了代理伺服器,代理伺服器的位址就是後面的數值說明。但可依代理伺服器的匿名程度進行偽造。
三、回傳指令搭配有無各種代理伺服器的解讀:不同種類的代理伺服器,回傳資訊可能有所不同,但一般的狀況如下:
- 沒有代理伺服器的狀況:
REMOTE_ADDR = 您的真實IP
HTTP_VIA = 沒數值或不顯示
HTTP_X_FORWARDED_FOR = 沒數值或不顯示(因header沒回傳)
- 透明代理伺服器的情況:Transparent Proxies
REMOTE_ADDR = 最後一個代理伺服器IP (一層或多層代理伺服器皆然)
HTTP_VIA = 代理伺服器的相關字串資訊
HTTP_X_FORWARDED_FOR = 一層代理伺服器,將回傳您的真實IP。若經過多層代理伺服器時,除真實IP外,還會加上proxy1 IP, proxy2 IP,…,proxy(n-1) IP。
這類代理伺服器會將您的真實IP傳給您訪問的伺服器,無法隱藏真實IP。
- 普通匿名代理伺服器的情況:Anonymous Proxies
REMOTE_ADDR = 最後一個代理伺服器IP (一層或多層代理伺服器皆然)
HTTP_VIA =代理伺服器的相關字串,或出現空值
HTTP_X_FORWARDED_FOR = 一層代理伺服器為空值。若經過多層代理伺服器將顯示proxy1 IP, proxy2 IP,…,proxy(n-1) IP。
這類代理伺服器隱藏您的真實IP,但原則上向您訪問的伺服器透露您有使用代理伺服器。
- 欺騙性代理伺服器的情況:Distorting Proxies
REMOTE_ADDR = 代理伺服器 IP (但可能為虛假IP)
HTTP_VIA =代理伺服器的相關字串,或出現空值
HTTP_X_FORWARDED_FOR = 隨機的虛假 IP、unknown甚或空值。
這類代理伺服器隨機編造一個虛假的代理伺服器IP取代您的真實IP,但原則上向您訪問的伺服器透露您有使用代理伺服器。
- 高匿名代理伺服器的情況:High Anonymity Proxies (Elite proxies)
REMOTE_ADDR = 代理伺服器 IP (但可能為虛假IP)
HTTP_VIA = 沒數值或不顯示
HTTP_X_FORWARDED_FOR = 沒數值或不顯示
完全用代理伺服器的資訊取代您所有資訊,模擬成您使用那台代理伺服器去訪問某伺服器的樣貌。