views: 2162 times


最近的 SPAM 有點嚴重,所以想說做一個 comment verify 的功能。但是,要做成 plugin 卻遇到了一個問題,就是我的 verify code 傳不進去。我不知道是什麼樣的問題,所以拋出來給大家研究一下。
首先這個 plugin 需要 listener event 叫做 AddingComment,它的作用是當留言的動作在進行的時候,先呼叫這個 listener 所 fireEvent 的函式。這個函式的作用就是檢查 verify code 是否正確。產生這個 verify code 的函式並不難,就只是利用 php + GD Library 產生一個動態的圖片。
這個 function 我依照 EAS plugin 的方式做了一個類似的:
函式分為兩個,一個是 Verify_AddingComment 從 event 中提取 $target, $mother,而 $mother 則是從 comment 的表單中提取欄位的數值出來。依照 common.js 的函式敘述來看,它是如此提取數值的。
程序:common.js,行數:1067~1070 行。
再來依照 EAS 的 plugin 來看:
那麼原理就很簡單了,由 EAS 來看,它是提取 $mother 中的欄位數值,然後由 EAS_Call() 來做檢查,檢查完之後若非 SPAM 則傳回 true,這個地方應該是有點漏洞所以被攻破了。
問題來了,我在樣版中增加了 verifycode 的欄位,但是使用 $mother 卻提取不到數值,換句話說,$mother['verifycode'] 這個數值是 null,不管我怎麼傳都一樣。所以我完全搞不懂它是怎麼傳這些東西的,可能,得寫信到官方去問了。
關於樣板的地方,要在留言的地方加入這些程序:
在 article 的部分加入:
在 guestbook 的部分加入:
檔案放在這裡給大家下載,有興趣的人研究看看囉!
首先這個 plugin 需要 listener event 叫做 AddingComment,它的作用是當留言的動作在進行的時候,先呼叫這個 listener 所 fireEvent 的函式。這個函式的作用就是檢查 verify code 是否正確。產生這個 verify code 的函式並不難,就只是利用 php + GD Library 產生一個動態的圖片。
這個 function 我依照 EAS plugin 的方式做了一個類似的:
函式分為兩個,一個是 Verify_AddingComment 從 event 中提取 $target, $mother,而 $mother 則是從 comment 的表單中提取欄位的數值出來。依照 common.js 的函式敘述來看,它是如此提取數值的。
程序:common.js,行數:1067~1070 行。
再來依照 EAS 的 plugin 來看:
那麼原理就很簡單了,由 EAS 來看,它是提取 $mother 中的欄位數值,然後由 EAS_Call() 來做檢查,檢查完之後若非 SPAM 則傳回 true,這個地方應該是有點漏洞所以被攻破了。
問題來了,我在樣版中增加了 verifycode 的欄位,但是使用 $mother 卻提取不到數值,換句話說,$mother['verifycode'] 這個數值是 null,不管我怎麼傳都一樣。所以我完全搞不懂它是怎麼傳這些東西的,可能,得寫信到官方去問了。
關於樣板的地方,要在留言的地方加入這些程序:
在 article 的部分加入:
在 guestbook 的部分加入:
檔案放在這裡給大家下載,有興趣的人研究看看囉!





Leave your greetings.
档案已经被我转移到http://textcube.com.cn
2008/03/15 12:22 [ Permalink : Modify/Delete : Reply ]