防止 bot 註冊與訪客發言

Webmasters Discussion
站長們到此分享架站甘苦、管理心得等;歡迎大家多多提出意見喔!
(請勿發表任何跟站長經驗分享不相干的文章,違者砍文)

版主: 版主管理群

twu2
星球普通子民
星球普通子民
文章: 18
註冊時間: 2002-07-24 10:15
來自: Eastwood City
聯繫:

防止 bot 註冊與訪客發言

文章 twu2 »

利用額外的 checkbox 防止 bot 註冊與發言: http://blog.teatime.com.tw/post/1/145
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8536
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: 防止 bot 註冊與訪客發言

文章 心靈捕手 »

twu2 寫:利用額外的 checkbox 防止 bot 註冊與發言: http://blog.teatime.com.tw/post/1/145
其實, 防止 'bot 註冊' 的方法最主要的精神,
應該就是更改原先預設的註冊介面,
可以新增一些 (必填或非必填) 欄位, 增加其判讀的困難度.

例如:
新增 '暱稱', '生日', '血型',...等.

ps.
移動到 '站長交流版'.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
御津闇慈
竹貓忠實會員
竹貓忠實會員
文章: 645
註冊時間: 2001-11-17 10:59

文章 御津闇慈 »

像這類的嗎XD
圖檔
那時候休假時無聊做的 :mrgreen:
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

御津闇慈 寫:像這類的嗎XD
這個的做法比較像是 cpatcha,但是因為是純文字 (?),所以用程式去抓一下 HTML 就可以填答案進去了。不過除非有人有心要寫 bot 破台,否則改個 template 一般的 bot 應該就沒辦法貼廣告了。ex. 把原本 submit 的按鈕改掉之類的 XD
小斌
星球公民
星球公民
文章: 129
註冊時間: 2003-03-03 22:57
來自: 麥麥團
聯繫:

Re: 防止 bot 註冊與訪客發言

文章 小斌 »

twu2 寫:利用額外的 checkbox 防止 bot 註冊與發言: http://blog.teatime.com.tw/post/1/145
我弄的兩個站都有裝這個,很不錯呢!簡單且有效。

聽說這種手段叫做「陷阱欄位」,刻意弄額外的欄位讓 bot 去填;而那額外的欄位是一般使用者不會(甚至不可能)去填到的。
網頁13秒黃金定律 寫:無論頻寬如何變大、無論網路如何變快,一旦載入某個頁面所需的時間超過了13秒,使用者就會不耐煩而按下「上一頁」。
御津闇慈
竹貓忠實會員
竹貓忠實會員
文章: 645
註冊時間: 2001-11-17 10:59

文章 御津闇慈 »

chiouss 寫:
御津闇慈 寫:像這類的嗎XD
這個的做法比較像是 cpatcha,但是因為是純文字 (?),所以用程式去抓一下 HTML 就可以填答案進去了。不過除非有人有心要寫 bot 破台,否則改個 template 一般的 bot 應該就沒辦法貼廣告了。ex. 把原本 submit 的按鈕改掉之類的 XD
冷水潑的不錯
這問題問的很好
基本上是抓html就可以破解了
不過前提是要md5他會反編譯
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

御津闇慈 寫:
chiouss 寫:
御津闇慈 寫:像這類的嗎XD
這個的做法比較像是 cpatcha,但是因為是純文字 (?),所以用程式去抓一下 HTML 就可以填答案進去了。不過除非有人有心要寫 bot 破台,否則改個 template 一般的 bot 應該就沒辦法貼廣告了。ex. 把原本 submit 的按鈕改掉之類的 XD
冷水潑的不錯
這問題問的很好
基本上是抓html就可以破解了
不過前提是要md5他會反編譯
阿...我不是要潑冷水阿 Orz

你貼出來的不是 HTML 或是產生的 PHP 所以我只能從圖上的內容來猜測。
不過,你說 MD5 要破解我真的聽不懂就是了...

--
題外話,MD5 的 collision 有被發現喔...有興趣的話請看 Slashdot
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

我來自首... 你們說的 MD5 我都聽不懂... Orz
請問 phpBB 有使用 MD5 編碼嗎??

我使用的是【ConfusaBOT_ACP】這個 MOD,效果剛開始不太好,在定時更換【同意變數】與【同意數值】之後,現在已經沒看到 BOT 跑來亂註冊了... :mrgreen:

可是如果有更好的辦法,我倒是想測試看看,如果好用就把【ConfusaBOT_ACP】拆掉,因為這個 MOD 需要新增 SQL 資料欄位,我想等到升級 phpBB 3.0 之後,這些外掛通通都會失效,這當然是應該如此的,可是這樣一來,以前裝了哪些外掛有新增欄位,那些欄位將會成為 SQL 中的永久垃圾... Orz
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

進藤光 寫:我來自首... 你們說的 MD5 我都聽不懂... Orz
請問 phpBB 有使用 MD5 編碼嗎??
有阿!phpBB 的使用者密碼欄位就是用 MD5 :Q
不過應該和上面的問題沒有關係...
ckmarkhsu
星球公民
星球公民
文章: 139
註冊時間: 2005-03-21 09:38

文章 ckmarkhsu »

chiouss 寫:
御津闇慈 寫:
chiouss 寫: 這個的做法比較像是 cpatcha,但是因為是純文字 (?),所以用程式去抓一下 HTML 就可以填答案進去了。不過除非有人有心要寫 bot 破台,否則改個 template 一般的 bot 應該就沒辦法貼廣告了。ex. 把原本 submit 的按鈕改掉之類的 XD
冷水潑的不錯
這問題問的很好
基本上是抓html就可以破解了
不過前提是要md5他會反編譯
阿...我不是要潑冷水阿 Orz

你貼出來的不是 HTML 或是產生的 PHP 所以我只能從圖上的內容來猜測。
不過,你說 MD5 要破解我真的聽不懂就是了...

--
題外話,MD5 的 collision 有被發現喔...有興趣的話請看 Slashdot

chiouss前輩。沒有啦,他的意思是說,圖片裡面的字串是 md5() 後的結果

========

md5 理論上是單向函數,並沒有「反編譯」的問題,他是一個雜湊函數,不是編譯阿:p

且一般用來解 cpatcha 是用 OCR 啦XD 不是什麼猜 MD5 XD


========

嗯,有人有人說不太了解 md5,要說就說完整一點好了^^

一、簡介

md5 是基於 md4 修改而來的雜湊演算法

其主要用途是將一個輸入值運算後輸出一個固定長度(32字元)的雜湊值(反正就是一個字串)

目的是來將原始的輸入資料做摘要,這在檔案比對、密碼學、檔案加密上非常重要

它具有幾個特性

1 .由於 md5 是將任何輸入值對應到有限長度的字串,因此他是一個不可逆的單向函數

因此在數學上你找不到他的反函數(就是你沒辦法寫出一個程式單純用運算將 md5 後的值轉回原始值)

2. md5 演算後的值非常的分散,因此只要小小的改變輸入值,md5 後的值就會巨幅的改變,例如以下的例子只改變了一個 c

MD5("The quick brown fox jumps over the lazy dog")
= 9e107d9d372bb6826bd81d3542a419d6

MD5("The quick brown fox jumps over the lazy cog")
= 1055d3e698d289f2af8663725127bd4b


二、用途

那這有三小錄用呢? 當然是有用才重要阿XD 以下是目前常用的幾個例子

1. 檔案完整性的比對

當你從一個網站下載檔案後,你可能會懷疑下載過程中有無出錯,或者有沒有被人竄改

但你也沒辦法跟伺服器上的檔案做比對,總不能傳兩次看看一不一樣XD,這樣很愚蠢

因此他們會在釋出時公佈該檔案的 MD5 值,你下載後亦將該檔案 MD5 後比對值是否相同即可判斷

2. 密碼儲存

各位是否想過,如果今天密碼以明碼存在網站資料庫中,那是多麼危險的行為

若被入侵,幾十萬人的帳號與密碼將直接被盜用,若不被入侵,站長也可能會自己盜用

因此目前成熟具有會員系統的程式均會將密碼做不可還原的加密

vBulletin phpBB Discuz! 等 CMS 當然也不例外

在你註冊時,他會將你的密碼 MD5值儲存起來,每次你登入時,便將你輸入的密碼MD5後比對資料庫內的值

這樣就可以在理論上確保原始密碼不外洩

3. 加密演算法(這部分太深奧,我也只懂概念,有興趣的就自己 G 吧XD)


三、目前已知的弱點

那有沒有演算弱點呢? 當然有,如果沒有弱點就不會從 MD4 變成 MD5 了:P

在 2005 年 MD5 的碰撞已經被山東大學的教授找到,意即你可以找到兩個值丟進去產生相同的 MD5 值(當然是用電腦算)

這是非常嚴重的問題,不過其實 MD4 時代已經發生過,當時只要用紙筆就可以找出碰撞

不過值得慶幸的是目前仍就沒辦法單純以演算法將 MD5 值直階還原


四、慣用破解方式

不過雖然單純以演算法無法還原,但我們可以用暴力的方式破解:P

首先,請先建立 1 ~ N (N 隨便你)字元的 md5值 資料庫,然後再將 md5 hash 直丟進去搜尋

只要 md5 前的原始字串字元數 < n 且組合包括在內就可以找出原始字串為何

舉例來說,雖然我們無法得知 9e107d9d372bb6826bd81d3542a419d6 意味著什麼意思

但如果你的資料庫中「碰巧」已經將 The quick brown fox jumps over the lazy dog 的 MD5 值算出來

那你就可以透過搜尋比對的方式找到該 MD5 值就是對應到那句英文

那資料表很難建立嗎? 不一點也不,只要簡單的幾行程式碼,一台不要太慢的電腦,幾GB的硬碟

輕易的就可以把 8 字元以下的字串 MD5 建表,所需時間應該不用幾小時,各位可以想想你的密碼有沒有超過 8 字元

如果沒超過,你的密碼幾乎肯定可以瞬間解出來,但如果超過也不用太高興,因為目前已經有人用了 1TB 資料庫建到 1X 字元的資料表

那難道沒有防堵方式嗎? 當然有,那就是 MD5 salt (講到這就不得不提一下,vBulletin 是目前唯一使用 md5 salt 的 CMS XD)

其原理就是在每個使用者的密碼中加入不同的鹽巴(salt)

大概來說,例如你的密碼是 dog 他在 md5 時會加入一特定字串(例如:#4%,此值在註冊時產生,每個人均不同)以特殊的方式一起 MD5

這有什麼好處呢? 這樣建表破解就破功了,因為表僅能針對沒有 salt 的 md5 值搜尋

除非他針對你的 salt 值去跑數十 GB 的資料庫,但這就非常沒有效益了,因為每個帳號的 salt 均不同



以上大概就是敝人對 MD5 所做的簡介,如有錯誤還請各位先進指證^^"


PS. 雖然 WinNT 不是使用 md5 編碼儲存,但其實他使用的演算方式也存在致命的弱點(7 字元一小節)

只要是 14 字元以下的 WinNT 帳號密碼都可以在取得加密值後瞬間解出來,不過超過 14 字元就不行了^^"


以上文章為 ckmarkhsu 撰寫,請勿任意轉載
台灣深藍vBulletin技術論壇

vBulletin 論壇系統,內建

「0 修改新增插件」「完整附件功能」「無限深度子論壇」「進階權限管理」「前台 AJAX 即時管理」

歡迎研究:)
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

ckmarkhsu 寫:chiouss前輩。沒有啦,他的意思是說,圖片裡面的字串是 md5() 後的結果
別用這種稱呼,我會害羞地 :oops:
都說過幾次了,我是小咖、是廢柴,不是什麼大大、前輩、長輩......

我就是搞不懂他到底想表達什麼,畢竟塗上我只看到幾個字母和數字要使用者驗證輸入,完全不清楚那些究竟是亂數還是其他方式產生的。我知道 captcha 之所以有防止一般 bot 程式的能力是因為 OCR 的能力問題,但是如果上面那張圖網頁上所呈現的辨認文字可以在 HTML 裡面被抓取出來,程式很容易的就可以讀出並且回覆給他的辨認程式。

題外話,captcha 的字型變化太多到後來連真人都很難辨識,我就愈到一些網站字體超難分辨的。我覺得還不如出簡單的數學題目來給使用者計算比較有用 :P
ckmarkhsu
星球公民
星球公民
文章: 139
註冊時間: 2005-03-21 09:38

文章 ckmarkhsu »

chiouss 寫:
ckmarkhsu 寫:chiouss前輩。沒有啦,他的意思是說,圖片裡面的字串是 md5() 後的結果
別用這種稱呼,我會害羞地 :oops:
都說過幾次了,我是小咖、是廢柴,不是什麼大大、前輩、長輩......

我就是搞不懂他到底想表達什麼,畢竟塗上我只看到幾個字母和數字要使用者驗證輸入,完全不清楚那些究竟是亂數還是其他方式產生的。我知道 captcha 之所以有防止一般 bot 程式的能力是因為 OCR 的能力問題,但是如果上面那張圖網頁上所呈現的辨認文字可以在 HTML 裡面被抓取出來,程式很容易的就可以讀出並且回覆給他的辨認程式。

題外話,captcha 的字型變化太多到後來連真人都很難辨識,我就愈到一些網站字體超難分辨的。我覺得還不如出簡單的數學題目來給使用者計算比較有用 :P
我比較喜歡用中文XD

http://lab.ckmarkhsu.com/captcha.php (動態的毆,請重新整理XD)

這樣 OCR 幾乎沒輒,且人眼多容易辨識阿XD

只是....只能給華人用^^"
台灣深藍vBulletin技術論壇

vBulletin 論壇系統,內建

「0 修改新增插件」「完整附件功能」「無限深度子論壇」「進階權限管理」「前台 AJAX 即時管理」

歡迎研究:)
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

ckmarkhsu 寫:若被入侵,幾十萬人的帳號與密碼將直接被盜用,若不被入侵,站長也可能會自己盜用
對於有資料庫權限的人而言,根本不需要破 MD5 去還原你的 password,直接把已知的字串 MD5 丟進去 database 裡面就可以操控你要操控的帳號。實際上,有 database 權限就等於已經破台了。
3. 加密演算法(這部分太深奧,我也只懂概念,有興趣的就自己 G 吧XD)
加密法用 md5?沒聽說過...
我知道的是 PGP/GPG 這種電子簽章/加密程序上會用到 one-way-hash (MD5 是其中一種),那和加密法沒有直接關係。
不過值得慶幸的是目前仍就沒辦法單純以演算法將 MD5 值直階還原
我上面貼的那個 Slashdot 連結有公開一隻程式,據說 MD4 可以瞬解,MD5 也只要 45min。

--
無聊看到上面的文章,又來蛇足兩句 :P
ckmarkhsu
星球公民
星球公民
文章: 139
註冊時間: 2005-03-21 09:38

文章 ckmarkhsu »

對於有資料庫權限的人而言,根本不需要破 MD5 去還原你的 password,直接把已知的字串 MD5 丟進去 database 裡面就可以操控你要操控的帳號。實際上,有 database 權限就等於已經破台了。
沒有啦,您誤會我的意思了:P 我僅是就原始密碼能不能備取來做討論而已:)
加密法用 md5?沒聽說過...
我知道的是 PGP/GPG 這種電子簽章/加密程序上會用到 one-way-hash (MD5 是其中一種),那和加密法沒有直接關係。
唔 應該是我語焉不詳,應該是 公開與私密金鑰 加密法過程中有機會用到 MD5 來做摘要

代碼: 選擇全部

我上面貼的那個 Slashdot 連結有公開一隻程式,據說 MD4 可以瞬解,MD5 也只要 45min。
唔,真的喔!? 不過我覺得 MD5 的可行性不是很高^^" 但我沒玩過
台灣深藍vBulletin技術論壇

vBulletin 論壇系統,內建

「0 修改新增插件」「完整附件功能」「無限深度子論壇」「進階權限管理」「前台 AJAX 即時管理」

歡迎研究:)
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

ckmarkhsu 寫:這樣 OCR 幾乎沒輒,且人眼多容易辨識阿XD

只是....只能給華人用^^"
耶~我就是想要這種的啊... 只能輸入中文的 "識別代碼" 就不用怕 BOT 亂註冊了... :mrgreen:
只不過不知道要怎樣套用在 phpBB 上?
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
回覆文章

回到「站長交流」