[問題] 會員密碼無法進入論壇 ~ 請教幾個無法理解的怪現象

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

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
Perfect
星球普通子民
星球普通子民
文章: 16
註冊時間: 2007-10-06 18:50

[問題] 會員密碼無法進入論壇 ~ 請教幾個無法理解的怪現象

文章 Perfect »

近期數位會員反應, 在 論壇的登入畫面 輸入 帳號密碼 後, 都會發生 帳密錯誤無法進入 之情形
起初不以為意, 認為只是會員記錯了密碼, 所以都是請會員點擊登入頁之 忘記密碼
以 重新獲取系統所寄出之密碼 的方式處理......

直到有一天, 另一位管理員在MSN上告知說, 他的帳密無法登入論壇, 他很確定密碼沒錯
此時, 我進入論壇 卻發現有人 以他的帳號進入, 並點閱各版面內的文章
(因論壇裡有寫隻程式 專門記錄 每位會員 在什麼時間 點閱過什麼文章, 所以能清楚明白)
因此個人合理的懷疑, 之前幾位會員的帳密無法進入論壇, 應也是帳號被盗用所致


小弟想問的是 ~

1. 這位 盗用會員帳號 進入論譠的人, 他有可能 是用什麼方式 辦到的

2. phpbb2 是以 md5 的加密方式, 將 會員密碼 寫入資料庫, 真的是 有如官網所說
  此 加密過的會員密碼 是 無法還原解析和 破解 的嗎 ??

3. 納悶的是 就算他 破解資料庫裡加密過的會員密碼 or 他是從會員的電腦獲取會員帳密

  A. 那他進入論壇後, 為什麼要更改會員的密碼, 導致原會員無法登入論壇呢
    同一組帳密 在不同電腦 是可以同時登入 phpbb2, 沒有改的必要啊
    他改了密碼 不是增加了 容易被發現的機會嗎

  B. 難道 他進入論壇用的方法 非逼他一定得改 帳號的密碼不可 ~~ 不可能吧

  C. 由 上述A 來判斷, 那他應該就不是 破解資料庫裡加密過的會員密碼
    也不是 從會員的電腦獲取會員帳密 了吧, 有密碼 幹嘛還這樣搞


煩請各位先進 幫忙解惑 和 建議如何解決此現象
現在都不曉得 進論壇的 是不是會員本人 :-?    謝謝 !!


●主機作業系統: 自建主機 Linux Fedora 7
●安裝的程式: Apache 2.2.4-4 + php 5.2.4-1 + mysql 5.0.37-2
●上網方式: 中華電信ADSL
●phpBB2 版本: phpBB 2.0.20
 
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8538
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: [問題] 會員密碼無法進入論壇 ~ 請教幾個無法理解的怪現象

文章 心靈捕手 »

Perfect 寫:近期數位會員反應, 在 論壇的登入畫面 輸入 帳號密碼 後, 都會發生 帳密錯誤無法進入 之情形
起初不以為意, 認為只是會員記錯了密碼, 所以都是請會員點擊登入頁之 忘記密碼
以 重新獲取系統所寄出之密碼 的方式處理......

直到有一天, 另一位管理員在MSN上告知說, 他的帳密無法登入論壇, 他很確定密碼沒錯
此時, 我進入論壇 卻發現有人 以他的帳號進入, 並點閱各版面內的文章
(因論壇裡有寫隻程式 專門記錄 每位會員 在什麼時間 點閱過什麼文章, 所以能清楚明白)
因此個人合理的懷疑, 之前幾位會員的帳密無法進入論壇, 應也是帳號被盗用所致


小弟想問的是 ~

1. 這位 盗用會員帳號 進入論譠的人, 他有可能 是用什麼方式 辦到的

2. phpbb2 是以 md5 的加密方式, 將 會員密碼 寫入資料庫, 真的是 有如官網所說
  此 加密過的會員密碼 是 無法還原解析和 破解 的嗎 ??

3. 納悶的是 就算他 破解資料庫裡加密過的會員密碼 or 他是從會員的電腦獲取會員帳密

  A. 那他進入論壇後, 為什麼要更改會員的密碼, 導致原會員無法登入論壇呢
    同一組帳密 在不同電腦 是可以同時登入 phpbb2, 沒有改的必要啊
    他改了密碼 不是增加了 容易被發現的機會嗎

  B. 難道 他進入論壇用的方法 非逼他一定得改 帳號的密碼不可 ~~ 不可能吧

  C. 由 上述A 來判斷, 那他應該就不是 破解資料庫裡加密過的會員密碼
    也不是 從會員的電腦獲取會員帳密 了吧, 有密碼 幹嘛還這樣搞


煩請各位先進 幫忙解惑 和 建議如何解決此現象
現在都不曉得 進論壇的 是不是會員本人 :-?    謝謝 !!


●主機作業系統: 自建主機 Linux Fedora 7
●安裝的程式: Apache 2.2.4-4 + php 5.2.4-1 + mysql 5.0.37-2
●上網方式: 中華電信ADSL
●phpBB2 版本: phpBB 2.0.20
 
建議您:
1. 貼出論壇網址
2. 升級最新版 2.0.22
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
Perfect
星球普通子民
星球普通子民
文章: 16
註冊時間: 2007-10-06 18:50

文章 Perfect »

感謝 心靈捕手大大 的回應

1. 貼出論壇網址
~ 因是朋友的私人論壇, 所以不便貼出, 請見諒
(請問:是一定要有論壇網址, 才比較好找出問題嗎 ?)

2. 升級最新版 2.0.22
那意思是指 目前所使用的 2.0.20 有這方面的漏洞嗎
可是看貴站 好像沒有人 有此類似的問題吔 (也許是我搜尋的不夠多)

是不是 光就我所說的過程, 因資訊不足 所以還是沒辦法作為判斷呢 :-(
除了更新論壇版本(當然這也要做), 還有那些可能該注意的地方

再次感謝各位 的 不吝指教 ~~
 
 
最初
星球公民
星球公民
文章: 34
註冊時間: 2007-01-11 21:41

文章 最初 »

若是沒有網址能夠測試怎麼可能知道哪裡出問題?

除非你是知道問題在哪卻不會修正......

就是因為2.0.20有安全性上的顧慮所以才會有安全性修正2.0.21跟2.0.22出現阿..

以上是我個人淺見
Perfect
星球普通子民
星球普通子民
文章: 16
註冊時間: 2007-10-06 18:50

文章 Perfect »

感謝 最初大大 的回覆 ~
最初 寫:若是沒有網址能夠測試怎麼可能知道哪裡出問題?
除非你是知道問題在哪卻不會修正......
就是因為2.0.20有安全性上的顧慮所以才會有安全性修正2.0.21跟2.0.22出現阿..
Sorry.... 能否請問 倘若知道網址, 您會朝那些方向做測試檢查(我想知道的是這個), 煩請 指引一、二

我只發現 如本文所述 之現象, 如知道問題在那, 我應該 會直接請教 該怎麼做修改
(知道問題在那 相對來說 也比較容易找到解決之道) 而不是列出一大堆不知方向的疑惑
所以我的問題是 不知問題出在那裡......

更新論壇版本當然要做, 心靈捕手大大 說過, 我也附和過
But 除了 更新版本 外, 都沒有其它 可能or該注意 的地方了嗎 :-?
當然可以告訴我說, 你不先更新 怎麼知道能不能解決問題....
但是 ~ 我也很希望有人 能針對 我所提的那幾點疑惑 幫我做可能的解答
  
以上如有冒犯之處, 還請見諒海涵 ~~ 謝謝 
 
 
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8538
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

Perfect 寫:感謝 心靈捕手大大 的回應

1. 貼出論壇網址
~ 因是朋友的私人論壇, 所以不便貼出, 請見諒
(請問:是一定要有論壇網址, 才比較好找出問題嗎 ?)

2. 升級最新版 2.0.22
那意思是指 目前所使用的 2.0.20 有這方面的漏洞嗎
可是看貴站 好像沒有人 有此類似的問題吔 (也許是我搜尋的不夠多)

是不是 光就我所說的過程, 因資訊不足 所以還是沒辦法作為判斷呢 :-(
除了更新論壇版本(當然這也要做), 還有那些可能該注意的地方

再次感謝各位 的 不吝指教 ~~
 
 
貼出論壇網址, 有幾個重要意義:
1. 證實真的有這麼一個論壇
2. 清楚了解論壇的使用族群
以我個人論壇而言, 主要使用的對象是小學生;
除非他們家裡頭有電腦可以上網, 否則絕大部分是利用學校電腦上網, 登入論壇;
因此帳號(密碼)被盜用, 是有可能的;
也許是離開教室前未登出, 或許是在輸入密碼時, 被旁邊同學窺見.

我以為:
密碼被盜用, 原罪不該是論壇, 而是使用者本身須負責:
1. 密碼設定必需夠安全 (例如: 6 字元以上, 包含英文, 數字等)
2. 離開電腦桌前, 記得按 '登出'

建議您:
更新 phpbb 版本, 雖然未必與您的提問有關, 但是對於一個負責任的管理者而言, 它是必要的.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
Perfect
星球普通子民
星球普通子民
文章: 16
註冊時間: 2007-10-06 18:50

文章 Perfect »

感謝 心靈捕手大大 再三不厭其煩的回覆和解說 ~

因小弟至今 仍無法確認 問題是出在那裡, 目前的做法, 也只能先更新phpbb2的版本 :-(
心靈捕手 寫:絕大部分是利用學校電腦上網, 登入論壇
因此帳號(密碼)被盜用, 是有可能的; 也許是離開教室前未登出.....

2. 離開電腦桌前, 記得按 '登出'
朋友的論壇是供會員發表攝影作品, 因其中有一版面是屬於人體作品, 所以不便在此公布網址
會員的族群大都是攝影玩家, 幾乎都是使用 家裡or公司的電腦上網, 想請教 心靈捕手大大 的是
撇開密碼被看見這點不說, 未登出論壇的狀態下 旁人怎麼取得其帳號的密碼呢
密碼不是有加密嗎? 而且在論壇裡也不會有顯示會員密碼的地方啊
除非那台電腦有安裝 鍵盤輸入記錄 之類的軟體, 否則光在 未登出狀態下的論壇裡, 如何能得知密碼呢 :roll:


小弟這幾天一直在納悶 關於本文中 所提的第3點 A~C, 真是想不透 用了別人的帳號登入論壇
為什麼要更改 他所盗用帳號的密碼
, 讓被盗者 在登入時密碼錯誤 無法進入, 而增加被發現的機會呢
今天忽然想到一種狀況 ~
假設那位不明人士(可能是之前被刪的會員) 破解了某些會員 在論壇裡所使用的註冊E-mail
那他只要在 論壇的登入畫面, 點 忘記密碼 的文字連結
在系統所出現之 發送新的密碼給我畫面, 輸入 會員帳號 及 E-mail
例如 他填入了 我那位管理員等級朋友 的 帳號及E-mail
(因管理員常會發信給會員, 又或許他是之前被刪的會員, 所以擁有 帳號及E-mail 應不難)
於是 系統產生了一組新密碼 寄到了 我那位管理員朋友 的註冊信箱
此時那位不明人士 只要進信箱取得系統所寄出的密碼 並刪掉那封信 即可
這也解釋了 為什麼他用別人的帳號進入 卻要改密碼 的原因 (原來是利用系統所寄之新密碼)

應該是我有點異想天開....
1. 破解並進入別人的信箱, 應該有難度吧, 何況又是破解那麼多位會員的信箱
2. 用這種方法進入論壇, 會導致 原會員密碼錯誤進不了, 不僅容易引起注意
  且只要會員也用了 忘記密碼 再去取得系統所寄出的密碼, 那他就又無法進入, 太不合效益了



最後想再請問 心靈捕手大大 有關於 login.php 的改法
我打算寫一個 VB之類的程式 寄給會員, 會員在進入論壇前必需先執行此程式
該程式會連至 MySQL資料庫, 在一個自建的新Table內 寫入會員電腦的一些硬體資訊....等資料
(其中細節 及 該程式後續所作的動作 就不再此贅述......)

想請教的是~ 如果我想在 登入畫面 增加一個驗証的欄位
讓會員登入時, 需 帳號密碼我所新增的欄位 都輸入正確, 方可成功登入
那我 需修改那幾支phpbb2的程式, 又該怎麼修改呢 ??

建Table、網頁加欄位...等動作 可略 (若能一併附 則更具完整性 當然最好)
想請教的是 以下動作的程式碼 該怎麼加寫修改、要加於何處 .....
1. 會員填完該三欄位 按確定後, 該怎麼改寫 讓php去多檢查 這個新增的欄位 (假設是 aTable.b欄位)
2. 只有在三個欄位 皆正確的情況下 可登入, 而若 新增的欄位 有誤
  則會像原本 帳密錯誤 時一樣, 出現個 錯誤提示畫面, 數秒後返回登入畫面

新增此欄位後, 我需注意 or 考慮到什麼嗎
 例如: 若會員有勾選 自動登入, 那 phpbb2程式 需為這個新欄位 再多加什麼程式碼 or 注意什麼 嗎
 

瀏覽了竹貓內的文章, 知道 心靈捕手大大 是 phpbb2這方面的程式高手
如有空, 還煩請 心靈捕手大大 費心費時賜教.... 感激不盡
當然~ 一切以不耽誤您的 工作及休閒 & 11點的上床時間 為要....
:mrgreen:

 
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8538
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

Perfect 寫:朋友的論壇是供會員發表攝影作品, 因其中有一版面是屬於人體作品, 所以不便在此公布網址
會員的族群大都是攝影玩家, 幾乎都是使用 家裡or公司的電腦上網, 想請教 心靈捕手大大 的是
撇開密碼被看見這點不說, 未登出論壇的狀態下 旁人怎麼取得其帳號的密碼呢
密碼不是有加密嗎? 而且在論壇裡也不會有顯示會員密碼的地方啊
除非那台電腦有安裝 鍵盤輸入記錄 之類的軟體, 否則光在 未登出狀態下的論壇裡, 如何能得知密碼呢 :roll:
1. 只要是在公用的電腦登入, 就有被窺見密碼的可能.
2. 因為你未登出論壇, 所以我可以使用你的帳號 (去變更密碼); 我不一定需要知道, 你的原始密碼為何.
Perfect 寫: 最後想再請問 心靈捕手大大 有關於 login.php 的改法
我打算寫一個 VB之類的程式 寄給會員, 會員在進入論壇前必需先執行此程式
該程式會連至 MySQL資料庫, 在一個自建的新Table內 寫入會員電腦的一些硬體資訊....等資料
(其中細節 及 該程式後續所作的動作 就不再此贅述......)

想請教的是~ 如果我想在 登入畫面 增加一個驗証的欄位
讓會員登入時, 需 帳號密碼我所新增的欄位 都輸入正確, 方可成功登入
那我 需修改那幾支phpbb2的程式, 又該怎麼修改呢 ??

建Table、網頁加欄位...等動作 可略 (若能一併附 則更具完整性 當然最好)
想請教的是 以下動作的程式碼 該怎麼加寫修改、要加於何處 .....
1. 會員填完該三欄位 按確定後, 該怎麼改寫 讓php去多檢查 這個新增的欄位 (假設是 aTable.b欄位)
2. 只有在三個欄位 皆正確的情況下 可登入, 而若 新增的欄位 有誤
  則會像原本 帳密錯誤 時一樣, 出現個 錯誤提示畫面, 數秒後返回登入畫面

新增此欄位後, 我需注意 or 考慮到什麼嗎
 例如: 若會員有勾選 自動登入, 那 phpbb2程式 需為這個新欄位 再多加什麼程式碼 or 注意什麼 嗎
我以為:
1. 要達到您的理想, 必須先從會員註冊時, 多填入相關認證資訊才有用.
2. 您的問題根源, 如果是使用者本身的習慣所致, 那麼再多的防備, 也於事無補, 只是徒增使用者的不便而已.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8538
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

心靈捕手 寫: 2. 因為你未登出論壇, 所以我可以使用你的帳號 (去變更密碼); 我不一定需要知道, 你的原始密碼為何.
這個論點是錯的. :oops:
我忘記變更密碼, 也必須輸入目前 (原始) 密碼.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
Perfect
星球普通子民
星球普通子民
文章: 16
註冊時間: 2007-10-06 18:50

文章 Perfect »

再次感謝 心靈捕手大大 不厭其煩的回覆 ~~ ;-)
心靈捕手 寫:1. 要達到您的理想, 必須先從會員註冊時, 多填入相關認證資訊才有用.
2. 您的問題根源, 如果是使用者本身的習慣所致, 那麼再多的防備, 也於事無補, 只是徒增使用者的不便而已.
目前除了帳密不明原因被盗的問題外, 還有會員將自己的帳密外借給非會員登入的問題
因論壇內 含有會員的人體攝影作品, 所以為了 讓會員有較安心的私密貼圖環境
防止非法會員的進入, 便成了 我們論壇管理人員 很重要的工作

小弟也有在 論壇的所在目錄 使用 .htaccess, 令 進入網站目錄 時, 需先輸入網站驗証的帳密後, 才能進入論壇的登入頁
但小弟認為~ 只要是由會員手動輸入的驗証動作, 那縱使管理員 設定再多的驗証動作 or 再增加任何資料的驗証欄位 都是枉然
因 會外借帳密 給 非法會員 者, 都可以一併將這些 所需輸入的資料內容 告知他人... 那再多的驗証動作及欄位 根本等同虛設 多此一舉

故小弟異想天開, 想要以 鎖會員電腦硬體序號 的方式, 限制註冊會員只能在固定的一台電腦登入論壇
這樣就算 會員的帳密被盗被外借, 因不是在所註冊的電腦作登入 一樣進不了論壇
或許您會認為~ 如此會造成會員的使用不便 且 會員一樣可把下載的圖 直接傳給他人就好, 一樣無法防止會員作品被盗...
基於安全理由, 會員都可以體諒管理處的做法, 至於會員私下將圖轉傳給他人, 這也是無法控管 無可奈何的事了
但起碼還是防止了 以任何方式取得帳密者 之 非法登入..... 相對於 原本皆由會員輸入資料作驗証的機制 也能讓會員安心了許多


因 php 無法偵測硬體序號, 所以小弟的想法是 寫一個 VB之類的程式 寄給會員, 會員在進入論壇前必需先執行此程式
該程式會偵測取得 會員電腦的硬體序號 (如 主機板、CPU、網卡MAC.....) 並連進 MySQL內 將值寫入某Table
接著會..... (請容許保留後續的行為, 因小弟實在被駭的怕了、煩了)
參考資料: 1. 取得硬碟及主機板序號   2. 取得 CPU 序號
   硬碟序號 會因 格式化 而改變, 所以不採用 ; 有網路文章指出, 賽陽CPU 都是一樣的CPU ID, AMD杜龍也是如此
     另 網卡MAC 也可被模擬 or 藉IP分享器自訂成任何想要的一組對外 MAC Address
     故會以 主機板+CPU+網卡MAC 以某種自定規則組成一個硬體序號, 以達成 硬體序號唯一性 之目的

目前上述的需求, 小弟已初步完成, 但因對 phpbb2 的 整個原始驗証過程 並不甚了解, 且恐有 錯誤觀念 or 疏漏之處
所以想請 心靈捕手大大 能否針對以下需求, 不吝指教小弟該如何修攻php程式
Perfect 寫:如果我想在 登入畫面 增加一個驗証的欄位, 讓會員登入時
帳號密碼我所新增的欄位 都輸入正確, 方可成功登入
那我 需修改那幾支phpbb2的程式, 又該怎麼修改呢 ??

建Table、網頁加欄位....等, 可簡略提一下 注意事項 即可
主要想請教的是 以下動作的程式碼 該怎麼加寫修改、要加於何處 .....
1. 會員填完該三欄位 按確定後, 該怎麼改寫 讓php去多檢查 這個新增的欄位 (假設是 aTable.b欄位)
2. 只有在三個欄位 皆正確的情況下 可登入, 而若 新增的欄位 有誤
  則會像原本 帳密錯誤 時一樣, 出現個 錯誤提示畫面, 數秒後返回登入畫面

新增此欄位後, 我需注意 or 考慮到什麼嗎
 例如: 若會員有勾選 自動登入, 那 phpbb2程式 需為這個新欄位 再多加什麼程式碼 or 注意什麼 嗎
 
 
a9v589
星球公民
星球公民
文章: 63
註冊時間: 2006-09-02 03:22

文章 a9v589 »

既然都限制電腦登入了
何不考慮用帳號綁定IP的方式呢
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8538
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

Perfect 寫:再次感謝 心靈捕手大大 不厭其煩的回覆 ~~ ;-)
心靈捕手 寫:1. 要達到您的理想, 必須先從會員註冊時, 多填入相關認證資訊才有用.
2. 您的問題根源, 如果是使用者本身的習慣所致, 那麼再多的防備, 也於事無補, 只是徒增使用者的不便而已.
目前除了帳密不明原因被盗的問題外, 還有會員將自己的帳密外借給非會員登入的問題
因論壇內 含有會員的人體攝影作品, 所以為了 讓會員有較安心的私密貼圖環境
防止非法會員的進入, 便成了 我們論壇管理人員 很重要的工作

小弟也有在 論壇的所在目錄 使用 .htaccess, 令 進入網站目錄 時, 需先輸入網站驗証的帳密後, 才能進入論壇的登入頁
但小弟認為~ 只要是由會員手動輸入的驗証動作, 那縱使管理員 設定再多的驗証動作 or 再增加任何資料的驗証欄位 都是枉然
因 會外借帳密 給 非法會員 者, 都可以一併將這些 所需輸入的資料內容 告知他人... 那再多的驗証動作及欄位 根本等同虛設 多此一舉

故小弟異想天開, 想要以 鎖會員電腦硬體序號 的方式, 限制註冊會員只能在固定的一台電腦登入論壇
這樣就算 會員的帳密被盗被外借, 因不是在所註冊的電腦作登入 一樣進不了論壇
或許您會認為~ 如此會造成會員的使用不便 且 會員一樣可把下載的圖 直接傳給他人就好, 一樣無法防止會員作品被盗...
基於安全理由, 會員都可以體諒管理處的做法, 至於會員私下將圖轉傳給他人, 這也是無法控管 無可奈何的事了
但起碼還是防止了 以任何方式取得帳密者 之 非法登入..... 相對於 原本皆由會員輸入資料作驗証的機制 也能讓會員安心了許多


因 php 無法偵測硬體序號, 所以小弟的想法是 寫一個 VB之類的程式 寄給會員, 會員在進入論壇前必需先執行此程式
該程式會偵測取得 會員電腦的硬體序號 (如 主機板、CPU、網卡MAC.....) 並連進 MySQL內 將值寫入某Table
接著會..... (請容許保留後續的行為, 因小弟實在被駭的怕了、煩了)
參考資料: 1. 取得硬碟及主機板序號   2. 取得 CPU 序號
   硬碟序號 會因 格式化 而改變, 所以不採用 ; 有網路文章指出, 賽陽CPU 都是一樣的CPU ID, AMD杜龍也是如此
     另 網卡MAC 也可被模擬 or 藉IP分享器自訂成任何想要的一組對外 MAC Address
     故會以 主機板+CPU+網卡MAC 以某種自定規則組成一個硬體序號, 以達成 硬體序號唯一性 之目的

目前上述的需求, 小弟已初步完成, 但因對 phpbb2 的 整個原始驗証過程 並不甚了解, 且恐有 錯誤觀念 or 疏漏之處
所以想請 心靈捕手大大 能否針對以下需求, 不吝指教小弟該如何修攻php程式
Perfect 寫:如果我想在 登入畫面 增加一個驗証的欄位, 讓會員登入時
帳號密碼我所新增的欄位 都輸入正確, 方可成功登入
那我 需修改那幾支phpbb2的程式, 又該怎麼修改呢 ??

建Table、網頁加欄位....等, 可簡略提一下 注意事項 即可
主要想請教的是 以下動作的程式碼 該怎麼加寫修改、要加於何處 .....
1. 會員填完該三欄位 按確定後, 該怎麼改寫 讓php去多檢查 這個新增的欄位 (假設是 aTable.b欄位)
2. 只有在三個欄位 皆正確的情況下 可登入, 而若 新增的欄位 有誤
  則會像原本 帳密錯誤 時一樣, 出現個 錯誤提示畫面, 數秒後返回登入畫面

新增此欄位後, 我需注意 or 考慮到什麼嗎
 例如: 若會員有勾選 自動登入, 那 phpbb2程式 需為這個新欄位 再多加什麼程式碼 or 注意什麼 嗎
 
 
既然有 '使用 .htaccess' 驗證使用者, 還會有帳號密碼被盜用的情形,
那麼可想而知 '會員將自己的帳密外借給非會員登入' 應該才是問題的根源.

--
您的 '以 鎖會員電腦硬體序號 的方式, 限制註冊會員只能在固定的一台電腦登入論壇' 想法, 可以一試.

使用者在登入前, 先執行您所謂的 'VB之類的程式', 然後將其 '電腦的硬體序號' 存入論壇資料庫;
接下來, 再登入時, 除了原先的會員名稱, 密碼之外, 又多了一個驗證 '電腦的硬體序號' 的欄位.

您這邊要克服的問題是:
當使用者在執行您所謂的 'VB之類的程式' 時, 必須確認其身分是真正的會員,
而非盜 (借) 用別人帳號者.


比較不解的是:
"使用者在登入前, 先執行您所謂的 'VB之類的程式'" 這個動作, 是每次登入論壇前必做的程序, 還是只要執行一次就好呢?

如果說, 會員願意配合固定使用某台電腦登入論壇,
而上述這個動作, 是每次登入論壇前必做的程序, 那麼這個防範比較有效.

如果說, 上述這個動作只要執行一次就好, 那麼它的防範比較無效;
因為就好比 '會員將自己的帳密外借給非會員登入', 同樣也是可以將 '電腦的硬體序號' 告知非註冊會員的,
而且不一定要固定使用某台電腦登入論壇.

--
以下範例:
使用者登入論壇時, 必須填正確的會員名稱, 密碼, 網卡位址.
http://wang5555.dnsfor.me/test/phpbb2/login.php

ID / PD / MAC:
goodluck / 12345678 / 00-11-22-33-44-55
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
Perfect
星球普通子民
星球普通子民
文章: 16
註冊時間: 2007-10-06 18:50

文章 Perfect »

感謝 a9v589大大 提供的意見 ~
a9v589 寫:既然都限制電腦登入了
何不考慮用帳號綁定IP的方式呢
因考量到 目前多數人上網的方式, 大多還是以 浮動IP 為主
每次上網後 由ISP處 所分配到的IP 並不一定會相同, 頂多只能知道 IP會是在那一個區段內浮動
這種無法在會員端 使具 固定性 和 唯一性 的 浮動IP, 似乎不太適合用來做為 登入驗証 的依據....

若我的觀念有錯 or 誤解 a9v589大大 的用意....... 還請再不吝指教~ 謝謝 ;-)

 
Perfect
星球普通子民
星球普通子民
文章: 16
註冊時間: 2007-10-06 18:50

文章 Perfect »

心靈捕手 寫:既然有 '使用 .htaccess' 驗證使用者, 還會有帳號密碼被盜用的情形,
那麼可想而知 '會員將自己的帳密外借給非會員登入' 應該才是問題的根源.
所以小弟才會認為, 設了再多的 驗証機制 和 驗証欄位, 只要都是由會員手動填入驗証資料者, 那一切皆等同虛設了
也因此 才會想要增加一個 在每次登入前 由程式自動取得和傳送 具有唯一性的硬體序號 給論壇程式作驗証 的動作
即 多一個 無法由會員手動輸入 的驗証動作.....

心靈捕手 寫:使用者在登入前, 先執行您所謂的 'VB之類的程式', 然後將其 '電腦的硬體序號' 存入論壇資料庫;
接下來, 再登入時, 除了原先的會員名稱, 密碼之外, 又多了一個驗證 '電腦的硬體序號' 的欄位.

您這邊要克服的問題是:
當使用者在執行您所謂的 'VB之類的程式' 時, 必須確認其身分是真正的會員, 而非盜 (借) 用別人帳號者.

比較不解的是:
"使用者在登入前, 先執行您所謂的 'VB之類的程式'" 這個動作, 是每次登入論壇前必做的程序, 還是只要執行一次就好呢?

如果說, 會員願意配合固定使用某台電腦登入論壇,
而上述這個動作, 是每次登入論壇前必做的程序, 那麼這個防範比較有效.

如果說, 上述這個動作只要執行一次就好, 那麼它的防範比較無效;
因為就好比 '會員將自己的帳密外借給非會員登入', 同樣也是可以將 '電腦的硬體序號' 告知非註冊會員的,
而且不一定要固定使用某台電腦登入論壇.
這該怪我沒有一次把作法說清楚, 實在也是因不便說清楚, 因為過程愈詳細 可能也就曝露更多破解之道..... :oops:
再略加描述一下我的想法 ~  寄給註冊會員的VB程式裡, 會有個 註冊硬體序號 的按鈕
原則上只讓會員執行一次 讓其硬體序號 註冊(加密寫入)至 某Table內
(除非會員告知有更換電腦設備, 否則 硬體序號欄位值 不允許會員執行更新)

爾後要進論壇, 就都需先執行這個VB程式裡的 登入論壇按鈕, 該按鈕會測得並送出會員目前所用電腦的硬體序號
並與先前所註冊的硬體序號作比對, 確定該組帳密 確實是在 其註冊的特定電腦上作登入, 才會再作一個寫入xxx的動作
重點就是這個 寫入xxxx的動作 (Sorry...保留一下)  接著便是自動開啟論壇的登入頁
----- 至以上階段, 經測試是可行的 -----

其實請教 心靈捕手大大 如何在 當會員於論壇登入頁按確定後, 可以多去檢查 所新增的欄位
並非我真的要在 論壇登入頁 多加個 驗証欄位, 只因那個 檢查新增欄位的動作 恰好可讓我來修改成 去檢查
先前VB程式所做的 硬體序號驗証 是否有產生 我上述所謂 寫入xxxx的動作 的 寫入值
以作為判斷 目前所用之帳密 是否真的是在 其所註冊的合法特定電腦上 作登入
如此應可讓帳密盗(借)者, 即使擁有正確的合法帳密 也無法在他台電腦成功登入
除非會員註冊的電腦是NB, 然後他把 整台NB+帳密 借人, 那我也奈可耐何了
總之 雖不可能絕對防堵, 但求做到 多一層的保護......

不知我上述的想法 是否是異想天開呢~ 還請各位先進 不吝吐嘈指教.......

心靈捕手 寫:以下範例:
使用者登入論壇時, 必須填正確的會員名稱, 密碼, 網卡位址.
http://wang5555.dnsfor.me/test/phpbb2/login.php

ID / PD / MAC:
goodluck / 12345678 / 00-11-22-33-44-55
沒錯~ 我要的就是這個..... :lol: :lol: :lol:
就是要 在會員按下確定 後, 程式如何對三個欄位做檢查 的程式碼, 可以煩請 心靈捕手大大 教我一下, 如何改寫嗎 :oops:

那個 檢查MAC欄位的動作 我應可自行改成 去檢查VB程式所做的 硬體序號驗証
有無產生寫入值, 若到時改寫有問題 可能還需再請教....

另想請教 當程式碼改完後, 若會員在登入頁 有勾選 自動登入, 應不會對 登入驗証的執行 有何影響吧...
 
最後還是再次感謝 心靈捕手大大 多次的回覆、幫忙......... :mrgreen: :mrgreen:

  
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8538
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

Perfect 寫:
心靈捕手 寫:以下範例:
使用者登入論壇時, 必須填正確的會員名稱, 密碼, 網卡位址.
http://wang5555.dnsfor.me/test/phpbb2/login.php

ID / PD / MAC:
goodluck / 12345678 / 00-11-22-33-44-55
沒錯~ 我要的就是這個..... :lol: :lol: :lol:
就是要 在會員按下確定 後, 程式如何對三個欄位做檢查 的程式碼, 可以煩請 心靈捕手大大 教我一下, 如何改寫嗎 :oops:

那個 檢查MAC欄位的動作 我應可自行改成 去檢查VB程式所做的 硬體序號驗証
有無產生寫入值, 若到時改寫有問題 可能還需再請教....

另想請教 當程式碼改完後, 若會員在登入頁 有勾選 自動登入, 應不會對 登入驗証的執行 有何影響吧...
 
最後還是再次感謝 心靈捕手大大 多次的回覆、幫忙......... :mrgreen: :mrgreen:

  
我將 (範例) 需修改的部份, 稍加整理如下, 提供您參考:
#
#-----[ SQL ]-----
#
ALTER TABLE phpbb_users ADD mac_address VARCHAR(32) NOT NULL

#
#-----[ OPEN ]-----
#
index.php

#
#-----[ FIND ]-----
#

代碼: 選擇全部

		'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'],
#
#-----[ AFTER, ADD ]-----
#

代碼: 選擇全部

		'L_MAC_ADDRESS' => $lang['Mac_Address'],
#
#-----[ OPEN ]-----
#
login.php

#
#-----[ FIND ]-----
#

代碼: 選擇全部

		$password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';
#
#-----[ AFTER, ADD ]-----
#

代碼: 選擇全部

		$mac_address = isset($HTTP_POST_VARS['mac_address']) ? $HTTP_POST_VARS['mac_address'] : '';
#
#-----[ FIND ]-----
#

代碼: 選擇全部

$sql = "SELECT user_id, username, user_password
#
#-----[ IN LINE AFTER, ADD ]-----
#

代碼: 選擇全部

, mac_address
#
#-----[ FIND ]-----
#

代碼: 選擇全部

				if( md5($password) == $row['user_password'] && $row['user_active'] )
#
#-----[ REPLACE WITH ]-----
#

代碼: 選擇全部

				if( md5($password) == $row['user_password'] && $row['user_active'] && $mac_address == $row['mac_address'] )
#
#-----[ FIND ]-----
#

代碼: 選擇全部

			'L_SEND_PASSWORD' => $lang['Forgotten_password'],
#
#-----[ AFTER, ADD ]-----
#

代碼: 選擇全部

			'L_MAC_ADDRESS' => $lang['Mac_Address'],
#
#-----[ OPEN ]-----
#
language/lang_chinese_traditional_taiwan/lang_main.php

#
#-----[ FIND ]-----
#

代碼: 選擇全部

$lang['Enter_password'] = '請輸入您的登入名稱及密碼';
#
#-----[ REPLACE WITH ]-----
#

代碼: 選擇全部

$lang['Enter_password'] = '請輸入您的登入名稱, 密碼及網卡位址';
#
#-----[ FIND ]-----
#

代碼: 選擇全部

$lang['Error_login'] = '您輸入了無效的登入名稱或錯誤的密碼';
#
#-----[ REPLACE WITH ]-----
#

代碼: 選擇全部

$lang['Error_login'] = '您輸入了無效的登入名稱, 錯誤的密碼或錯誤的網卡位址';
#
#-----[ AFTER, ADD ]-----
#

代碼: 選擇全部

$lang['Mac_Address'] = '網卡位址';
#
#-----[ OPEN ]-----
#
templates/subSilver/index_body.tpl

#
#-----[ FIND ]-----
#

代碼: 選擇全部

		   {L_PASSWORD}: 
		<input class="post" type="password" name="password" size="10" maxlength="32" />
#
#-----[ AFTER, ADD ]-----
#

代碼: 選擇全部

		&nbsp;&nbsp;&nbsp;{L_MAC_ADDRESS}: 
		<input class="post" type="text" name="mac_address" size="10" maxlength="32" />
#
#-----[ OPEN ]-----
#
templates/subSilver/login_body.tpl

#
#-----[ FIND ]-----
#

代碼: 選擇全部

		  <tr> 
			<td align="right"><span class="gen">{L_PASSWORD}:</span></td>
			<td> 
			  <input type="password" class="post" name="password" size="25" maxlength="32" />
			</td>
		  </tr>
#
#-----[ AFTER, ADD ]-----
#

代碼: 選擇全部

		  <tr> 
			<td align="right"><span class="gen">{L_MAC_ADDRESS}:</span></td>
			<td> 
			  <input type="text" class="post" name="mac_address" size="25" maxlength="32" />
			</td>
		  </tr>
#
#-----[ SAVE & CLOSE ]-----
#

ps.
勾不勾選 '自動登入'?
我猜想: 沒關係.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
主題已鎖定

回到「phpBB 2 安裝與使用」