使用CloudFlare 存取真實訪客IP 位址
Web 應用程式通常依賴$_SERVER['REMOTE_ADDR'] 來追蹤和記錄造訪其網站的使用者數。然而,當使用CloudFlare進行快取和保護時,收到的IP位址屬於CloudFlare,而不是實際的訪客。這對 PHP 中準確的 IP 位址追蹤提出了挑戰。
CloudFlare 的特殊變數
為了解決此問題,CloudFlare 提供了額外的伺服器變量,可用於檢索真實訪客IP位址。這些變數包括:
修正IP 位址
要使用CloudFlare 時擷取實際訪客IP 位址,您可以使用下列程式碼:
<code class="php">if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; }</code>
這將分配將真實訪客IP 位址新增至$_SERVER['REMOTE_ADDR'] 變數中,以便您可以準確追蹤和記錄它。
安全注意事項
需要注意的是,任何人直接存取您的伺服器 IP 可以操縱這些標頭值。為了確保有效性,請考慮在依賴 $_SERVER['REMOTE_ADDR'] 之前驗證它是否對應到合法的 CloudFlare IP 位址。
以上是使用CloudFlare時如何存取真實訪客IP位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!