[問題] 訪客使用浮動 IP, 必須不斷重新登入--- 貴站留言版

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
主題已鎖定
smilecome
星球普通子民
星球普通子民
文章: 5
註冊時間: 2005-03-21 20:06

[問題] 訪客使用浮動 IP, 必須不斷重新登入--- 貴站留言版

文章 smilecome »

本人是透過公司企業之 proxy sever 上網, 因此IP 是浮動的,
以致本人很難登入貴站之phpbb2 留言版, 即時登入後,
還是被要求, 需不斷重新登入, 因為本人使用 IP 又變了.
(本人電腦 Cookis 複寫全部設定為 yes)

即使本人自己架設的 phpbb2 or phppp2 plus, 也是同樣有這些登入問題.

但這些問題並不發生在使用固定 IP 上網進入 phpbb2 的訪客.

所以不知是否有人知道如何解決:

:arrow: 訪客使用浮動 IP, 必須不斷重新登入 --- 貴站留言版-- 的問題 ? :?:

(註: 寫這篇留言, 至少登入 5 次才 成功)

●本人作業系統:Windows 2000 SP4
●本人上網方式:CABLE via proxy server (1.5 pxy:3128 squid/2.5.stable2) (ISP = HINET-IP.hinet.net)
●本人網路 Cookies 設定: 1. 複寫自動 cookies 處理(YES), 2. 接受第一與第三方 Cookies (YES)
●本人防火牆 : PCCILIN 2004
●本人上網 IP: remote IP 多組 220.130.**** from 178.1.****
最後由 smilecome 於 2005-04-16 02:57 編輯,總共編輯了 1 次。
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

這完全是你的網路公司的問題...跟phpbb完全無關
smilecome
星球普通子民
星球普通子民
文章: 5
註冊時間: 2005-03-21 20:06

文章 smilecome »

DL 寫:這完全是你的網路公司的問題...跟phpbb完全無關
應該不是這個問題, 因為在使用 Xoops2.0.9, phpnuke7.6, 雷傲論壇 leobbs, 或是一些有名的商業網站購物登入時, 都沒有phpbb2 2.0.13 這個一直搞不清楚 client 端是誰, 不斷要求要重新登入的問題.

應該是 phpbb2 的 session 寫法, 有些不一樣, 等花點時間研究一下, 找到問題再說.
smilecome
星球普通子民
星球普通子民
文章: 5
註冊時間: 2005-03-21 20:06

[問題] phpbb2 沒有使用 HTTP_X_FORWARDED_FOR 來記錄 IP

文章 smilecome »

原因找到了: 這是因為 phpbb2 無法讀取 使用代理伺服器主機的 user IP ,也就是 phpbb2 並不使用 " HTTP_X_FORWARDED_FOR" , 這個指令, 來取得user 的真實IP, 才會一直要求要 user 登入:

請看 common.php 第 201 ~208 行, 便可了解:

代碼: 選擇全部

// Obtain and encode users IP
//
// I'm removing HTTP_X_FORWARDED_FOR ... this may well cause other problems such as
// private range IP's appearing instead of the guilty routable IP, tough, don't
// even bother complaining ... go scream and shout at the idiots out there who feel
// "clever" is doing harm rather than good ... karma is a great thing ... :)
//
$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR') );

$user_ip = encode_ip($client_ip);
所以若是使用防火牆, 經由 proxy server 來使用 phpbb2 的朋友 , 若沒有使用HTTP_X_FORWARDED_FOR ", 來偵測 user 真實 IP, 大概登入都有問題, 除非把 session IP 也給拿掉.
最後由 smilecome 於 2005-04-16 04:50 編輯,總共編輯了 2 次。
smilecome
星球普通子民
星球普通子民
文章: 5
註冊時間: 2005-03-21 20:06

[建議] 更改 session IP 語法

文章 smilecome »

建議將上面的 $Client_ip=...... 這一段, 改寫如下:

代碼: 選擇全部

 if (getenv('HTTP_X_FORWARDED_FOR') )
   {
    $client_ip = ( !empty($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']) ) ? $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] : ( ( !empty($HTTP_ENV_VARS['HTTP_X_FORWARDED_FOR']) ) ? $HTTP_ENV_VARS['HTTP_X_FORWARDED_FOR'] : getenv('HTTP_X_FORWARDED_FOR') );
   } else
   {
    $client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR') );
   } 
應可解決一些 USER 透過 proxy server 上網, 使用浮動 IP, 以致無法登入的問題. (至於會有什麼作者說的安全隱私問題, 不太了解..., 請自行研究斟酌
lasthero
星球公民
星球公民
文章: 172
註冊時間: 2002-07-18 11:23
來自: 那普勒星
聯繫:

文章 lasthero »

您好, 我照您的方法修改後仍然無法登入, 有時候看到登入了, 但去點文章連結或是去其他地方, 都會叫我再登入一次, 我是用公司內部網路上網, 用的是公司給的虛擬IP, 需要經過公司的proxy才能上網, 也有碰到這樣的問題.
smilecome
星球普通子民
星球普通子民
文章: 5
註冊時間: 2005-03-21 20:06

文章 smilecome »

lasthero 寫:您好, 我照您的方法修改後仍然無法登入, 有時候看到登入了, 但去點文章連結或是去其他地方, 都會叫我再登入一次, 我是用公司內部網路上網, 用的是公司給的虛擬IP, 需要經過公司的proxy才能上網, 也有碰到這樣的問題.
將 if (getenv('HTTP_X_FORWARDED_FOR') ) 改成


if (getenv('HTTP_X_FORWARDED_FOR') !='')

試試看, 如果還是不行, 你可以自己寫一段 PHP 小程式, 將 虛擬 與 真實 IP 全部顯示出來看一下, 看看是哪個值變來變去 ? (不斷按 重新整理按鈕)

你也可以到 http://www.all-nettools.com 去測試你公司 IP 狀態
kennethf
星球普通子民
星球普通子民
文章: 2
註冊時間: 2005-04-29 09:36

文章 kennethf »

請問各位解決此問題未, 小弟亦有相同問題於個另ISP上.
主題已鎖定

回到「phpBB 2 安裝與使用」