[分享]消極處理註冊機器人的方法
版主: 版主管理群
[分享]消極處理註冊機器人的方法
這幾天終於有時間坐下來check自私的註冊機器人所創出來的結果。
這些劣質的傢伙,無不是想利用站長們辛苦經營的討論區上的流量,在會員列表上列出自己的網站連結,除了讓討論區上的user有click的機會,最主要是能在search eng上大量瀑光。
對於這種利用別人資源的可惡傢伙,絕對不必手軟。
小弟研究了一下目前使用的方法,都蠻好用的;但在設定mod的過程,愈做愈不爽.....沒道理別人亂丟垃圾,我們還得苦力的去善後;而且,加上mod,實在是增加正常user的使用阻力。不論是對網站管理者、或用戶,都是十分不合理的。
針對這種傢伙,小弟發現它們有個共通性:POSTS數等於零。所以,最省事的方法就是在phpbb顯示連結的地方,直接做限制。
相關的檔案有:
memberlist.php-->會員列表的部分
usercp_viewprofile.php-->檢示個人資料的部分
相關的table:
phpbb_users的user_posts、user_website、user_email等三個欄位
小弟的想法是:
posts == 0 && user_website <> NULL,代表這個user尚未發言、且有設定網站。所以,我們針對這群人做處理。
狠一點的做法:這種人在sql語法直接跳過,不顯示。善良一點的做法:不顯示這種人網站連結即可。
為避免長期做為潛水會員的網友且兼顧正常網友的權益,小弟的做法為:
開啟:memberlist.php
找出:$posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0;
在上述之後,加上:if($posts == 0) $row['user_website'] = NULL;
開啟:usercp_viewprofile.php
找出:$www_img = ( $profiledata['user_website'] ) ? '<a href="' . $profiledata['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : ' ';
在上述之前,加上:if($profiledata['user_posts'] == 0) $profiledata['user_website'] = NULL;
如此,任何沒有post、且有設定個人網站的會員,在phpbb的網頁上能正常顯示,但不會秀出個人網站的連結。
只要開兩支php檔案並個加一列php語法,即可消極的處理掉惱人的註冊機器人。
偶知道這種方法實在是很鴕鳥,但它實在是很省事。
此外,針對刪除這些帳號得同時修正數個tables,小弟正針對email帳號似某種如.info || .ru之流、且user_website似文字(如sex、medicine)、且post數為0的情況寫sql語法來處理。
不曉得有沒有網友有其它的想法,請給小弟建議,謝謝。
這些劣質的傢伙,無不是想利用站長們辛苦經營的討論區上的流量,在會員列表上列出自己的網站連結,除了讓討論區上的user有click的機會,最主要是能在search eng上大量瀑光。
對於這種利用別人資源的可惡傢伙,絕對不必手軟。
小弟研究了一下目前使用的方法,都蠻好用的;但在設定mod的過程,愈做愈不爽.....沒道理別人亂丟垃圾,我們還得苦力的去善後;而且,加上mod,實在是增加正常user的使用阻力。不論是對網站管理者、或用戶,都是十分不合理的。
針對這種傢伙,小弟發現它們有個共通性:POSTS數等於零。所以,最省事的方法就是在phpbb顯示連結的地方,直接做限制。
相關的檔案有:
memberlist.php-->會員列表的部分
usercp_viewprofile.php-->檢示個人資料的部分
相關的table:
phpbb_users的user_posts、user_website、user_email等三個欄位
小弟的想法是:
posts == 0 && user_website <> NULL,代表這個user尚未發言、且有設定網站。所以,我們針對這群人做處理。
狠一點的做法:這種人在sql語法直接跳過,不顯示。善良一點的做法:不顯示這種人網站連結即可。
為避免長期做為潛水會員的網友且兼顧正常網友的權益,小弟的做法為:
開啟:memberlist.php
找出:$posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0;
在上述之後,加上:if($posts == 0) $row['user_website'] = NULL;
開啟:usercp_viewprofile.php
找出:$www_img = ( $profiledata['user_website'] ) ? '<a href="' . $profiledata['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : ' ';
在上述之前,加上:if($profiledata['user_posts'] == 0) $profiledata['user_website'] = NULL;
如此,任何沒有post、且有設定個人網站的會員,在phpbb的網頁上能正常顯示,但不會秀出個人網站的連結。
只要開兩支php檔案並個加一列php語法,即可消極的處理掉惱人的註冊機器人。
偶知道這種方法實在是很鴕鳥,但它實在是很省事。
此外,針對刪除這些帳號得同時修正數個tables,小弟正針對email帳號似某種如.info || .ru之流、且user_website似文字(如sex、medicine)、且post數為0的情況寫sql語法來處理。
不曉得有沒有網友有其它的想法,請給小弟建議,謝謝。
印象中, 有外掛就是將文章數是零的會員, 不顯示在會員列表上.
另外, 針對其留下 '網址' 的情形, 如果在註冊的頁面加上一些處理,
那麼應該也可以達到遏阻註冊機器人的效果, 甚至加速正常會員的註冊程序.
以下的修改, 提供您分享:
#
#-----[ OPEN ]-----
#
templates/subSilver/profile_add_body.tpl
#
#-----[ FIND ]-----
#
#
#-----[ REPLACE WITH ]-----
#
#
#-----[ SAVE & CLOSE ]-----
#
如此一來, 這些屬於個人資訊的資料 (欄位), 將不會出現在註冊的頁面;
只有在會員登入後, 才可以使用.
另外, 針對其留下 '網址' 的情形, 如果在註冊的頁面加上一些處理,
那麼應該也可以達到遏阻註冊機器人的效果, 甚至加速正常會員的註冊程序.
以下的修改, 提供您分享:
#
#-----[ OPEN ]-----
#
templates/subSilver/profile_add_body.tpl
#
#-----[ FIND ]-----
#
代碼: 選擇全部
<tr>
<th class="thSides" colspan="2" height="25" valign="middle">{L_PROFILE_INFO}</th>
</tr>
<tr>
<td class="row2" colspan="2"><span class="gensmall">{L_PROFILE_INFO_NOTICE}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_ICQ_NUMBER}:</span></td>
<td class="row2">
<input type="text" name="icq" class="post" style="width: 100px" size="10" maxlength="15" value="{ICQ}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_AIM}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 150px" name="aim" size="20" maxlength="255" value="{AIM}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_MESSENGER}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 150px" name="msn" size="20" maxlength="255" value="{MSN}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_YAHOO}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 150px" name="yim" size="20" maxlength="255" value="{YIM}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_WEBSITE}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 200px" name="website" size="25" maxlength="255" value="{WEBSITE}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_LOCATION}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 200px" name="location" size="25" maxlength="100" value="{LOCATION}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_OCCUPATION}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 200px" name="occupation" size="25" maxlength="100" value="{OCCUPATION}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_INTERESTS}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 200px" name="interests" size="35" maxlength="150" value="{INTERESTS}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_SIGNATURE}:</span><br /><span class="gensmall">{L_SIGNATURE_EXPLAIN}<br /><br />{HTML_STATUS}<br />{BBCODE_STATUS}<br />{SMILIES_STATUS}</span></td>
<td class="row2">
<textarea name="signature" style="width: 300px" rows="6" cols="30" class="post">{SIGNATURE}</textarea>
</td>
</tr>
<tr>
<td class="catSides" colspan="2" height="28"> </td>
</tr>
#-----[ REPLACE WITH ]-----
#
代碼: 選擇全部
<!-- BEGIN switch_user_logged_in -->
<tr>
<th class="thSides" colspan="2" height="25" valign="middle">{L_PROFILE_INFO}</th>
</tr>
<tr>
<td class="row2" colspan="2"><span class="gensmall">{L_PROFILE_INFO_NOTICE}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_ICQ_NUMBER}:</span></td>
<td class="row2">
<input type="text" name="icq" class="post" style="width: 100px" size="10" maxlength="15" value="{ICQ}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_AIM}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 150px" name="aim" size="20" maxlength="255" value="{AIM}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_MESSENGER}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 150px" name="msn" size="20" maxlength="255" value="{MSN}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_YAHOO}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 150px" name="yim" size="20" maxlength="255" value="{YIM}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_WEBSITE}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 200px" name="website" size="25" maxlength="255" value="{WEBSITE}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_LOCATION}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 200px" name="location" size="25" maxlength="100" value="{LOCATION}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_OCCUPATION}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 200px" name="occupation" size="25" maxlength="100" value="{OCCUPATION}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_INTERESTS}:</span></td>
<td class="row2">
<input type="text" class="post" style="width: 200px" name="interests" size="35" maxlength="150" value="{INTERESTS}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_SIGNATURE}:</span><br /><span class="gensmall">{L_SIGNATURE_EXPLAIN}<br /><br />{HTML_STATUS}<br />{BBCODE_STATUS}<br />{SMILIES_STATUS}</span></td>
<td class="row2">
<textarea name="signature" style="width: 300px" rows="6" cols="30" class="post">{SIGNATURE}</textarea>
</td>
</tr>
<tr>
<td class="catSides" colspan="2" height="28"> </td>
</tr>
<!-- END switch_user_logged_in -->
#-----[ SAVE & CLOSE ]-----
#
如此一來, 這些屬於個人資訊的資料 (欄位), 將不會出現在註冊的頁面;
只有在會員登入後, 才可以使用.
-
- 星球普通子民
- 文章: 14
- 註冊時間: 2004-05-13 15:21
- 來自: taipei
好久沒來了,原來大家都有此困擾,小弟的論壇因平常就常會有人會來鬧及洗版,所以剛開始並不以為意,貼了刪了就是,另外公告請網友不要去點閱那廣告網址,後來發現不對一晚一貼就超過300篇以上,每天光處理這些"垃圾"就忙死了,看註冊會員的 e-mail 都是 .info 及 .ru 之類的,就將啟用改由系統管理員開啟,但後來覺得也不對,一開信箱光處理這些註冊會員真的很浪費時間,還得進入論壇的系統管理控制台去刪這些"垃圾會員",還會誤刪到真的想註冊的會員,不然就是得幫真正的會員開啟使用,仔細看這些註冊的信箱都是 .info 及 .ru 之類的,最後還是改回讓它們自行開啟,開啟成功的就封鎖那信箱 *@......,另外在 profile_add_body.tpl 多加了一個欄位" 確認會員名稱: * ",而會員名稱那欄實際上有填沒填都無所謂,隔幾天就又把 profile_add_body.tpl 改回來,反正在資料夾裡同時存有此兩個檔案,交互更名改來改去就是了,現在此"垃圾會員"有的話一天頂多1~2個而已,而且都是無法開啟的使用者。linjunan 寫:感謝,小弟來試試看....^ ^
此外,針對那種可惡、自私使用註冊機器人的『傢伙』,有沒有什麼反制的方法? 不然,開個討論區好像欠這些傢伙來搗亂似的....
剛看了
[整理] 防止 bot 註冊或廣告的討論與外掛相關連結
http://phpbb-tw.net/phpbb/viewtopic.php?t=47025
加裝了需驗証碼
小弟現是懶得再去更改程式,就還是暫時採取以上的處理方法。
PS:會員列表及檢示個人資料小弟的論壇是不開放訪客查閱。
真正的消極方法應該是"推薦信"
就是你要有推薦信或者自己推薦自己當會員, 管理員才給你一個code
呵呵, 這下傻瓜bot就不會啦吧?
就是你要有推薦信或者自己推薦自己當會員, 管理員才給你一個code
呵呵, 這下傻瓜bot就不會啦吧?
目前狀態
GoKo Music進度: 10%
問個問題不要緊,可是沒有發文格式、問題不夠詳細情況,難道要用猜嗎?
新手必讀
[教學] 基本認識、學習、隨我架設phpBB的新手通 -更新至2.0.22
問問題的技巧
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=44340
MOD安裝教學及轉碼
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=22832
GoKo Music進度: 10%
問個問題不要緊,可是沒有發文格式、問題不夠詳細情況,難道要用猜嗎?
新手必讀
[教學] 基本認識、學習、隨我架設phpBB的新手通 -更新至2.0.22
問問題的技巧
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=44340
MOD安裝教學及轉碼
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=22832
^ ^makebelieve 寫:好久沒來了,原來大家都有此困擾,小弟的論壇因平常就常會有人會來鬧及洗版,所以剛開始並不以為意,貼了刪了就是,另外公告請網友不要去點閱那廣告網址,後來發現不對一晚一貼就超過300篇以上,每天光處理這些"垃圾"就忙死了,看註冊會員的 e-mail 都是 .info 及 .ru 之類的,就將啟用改由系統管理員開啟,但後來覺得也不對,一開信箱光處理這些註冊會員真的很浪費時間,還得進入論壇的系統管理控制台去刪這些"垃圾會員",還會誤刪到真的想註冊的會員,不然就是得幫真正的會員開啟使用,仔細看這些註冊的信箱都是 .info 及 .ru 之類的,最後還是改回讓它們自行開啟,開啟成功的就封鎖那信箱 *@......,另外在 profile_add_body.tpl 多加了一個欄位" 確認會員名稱: * ",而會員名稱那欄實際上有填沒填都無所謂,隔幾天就又把 profile_add_body.tpl 改回來,反正在資料夾裡同時存有此兩個檔案,交互更名改來改去就是了,現在此"垃圾會員"有的話一天頂多1~2個而已,而且都是無法開啟的使用者。
剛看了
[整理] 防止 bot 註冊或廣告的討論與外掛相關連結
http://phpbb-tw.net/phpbb/viewtopic.php?t=47025
加裝了需驗証碼
小弟現是懶得再去更改程式,就還是暫時採取以上的處理方法。
PS:會員列表及檢示個人資料小弟的論壇是不開放訪客查閱。
請教一下:『會員確認』欄位是什麼東東? 可以再說明一下嗎? 感恩啦!
改tpl到還簡單,在套template的地方改一下機制即可;看是要給它一、三、五一組,二、四、六一組,還是random...
有在國外的網站上找到一些自動註冊的程式。大致上直接對action做處理,很好奇的是它是如何能通過『確認代碼』那邊....> <
目前處理自動發言機器人是還好,處理自動註冊機器人比較麻煩些。
針對自動註冊、自動發言,小弟正在試限定來源網址;目前似乎還是有問題,如果能成功,只要加一行php程式就解決,不消極、也不累人。^ ^
-
- 星球普通子民
- 文章: 14
- 註冊時間: 2004-05-13 15:21
- 來自: taipei
小弟是將 profile_add_body.tpl 改成如下:linjunan 寫:^ ^
請教一下:『會員確認』欄位是什麼東東? 可以再說明一下嗎? 感恩啦!
改tpl到還簡單,在套template的地方改一下機制即可;看是要給它一、三、五一組,二、四、六一組,還是random...
有在國外的網站上找到一些自動註冊的程式。大致上直接對action做處理,很好奇的是它是如何能通過『確認代碼』那邊....> <
目前處理自動發言機器人是還好,處理自動註冊機器人比較麻煩些。
針對自動註冊、自動發言,小弟正在試限定來源網址;目前似乎還是有問題,如果能成功,只要加一行php程式就解決,不消極、也不累人。^ ^
代碼: 選擇全部
<!-- BEGIN switch_namechange_allowed -->
<tr>
<td class="row1" width="38%"><span class="gen">會員名稱: * </span></td>
<td class="row2"><input type="text" class="post" style="width:200px" name="username" size="25" maxlength="25" value="" /></td> <tr>
<td class="row1" width="38%"><span class="gen">確認會員名稱: *</span></td>
<td class="row2"><input type="text" class="post" style="width:200px" name="username" size="25" maxlength="25" value="{USERNAME}" /></td>
</tr>
<!-- END switch_namechange_allowed -->
我曾將註冊取消掉但還是一樣被註冊,發現它只要敲以下網址就進入註冊網頁了
http://phpbb-tw.net/phpbb/profile.php?m ... greed=true
後來又發現敲以下網址就露餡了
http://phpbb-tw.net/phpbb/templates/sub ... d_body.tpl
所以就將{L_USERNAME}: * 改成中文名稱,第一個 value="" 就讓它空白不顯示出 "{USERNAME}" 的字出來。
另外將註冊網頁底部的"送出"與"重設"左右對換
代碼: 選擇全部
<td class="catBottom" colspan="2" align="center" height="28">{S_HIDDEN_FIELDS}<input type="reset" value="{L_RESET}" name="reset" class="liteoption" /> <input type="submit" name="submit" value="{L_SUBMIT}" class="mainoption" /></td>
嗯, 其實推薦信是可以在加入會員那裡按一個按鈕發送到你的郵箱,之後想加入的會員只要將裡面的密語放在註冊會員裡面即可io_oi 寫:驗證機制改成猜燈謎
或者可程式化到站長可自製驗證問與答
例如黑松廣告"大陸偷渡客篇"
至少可以結掉一堆國外的亂文連結po文諸如此類等等
人數少的,管制嚴格的網站可使用賊遠的"推薦註冊"外掛
也是不錯的選擇...
以上,小弟愚見...
不過暫時我還沒找到有關的代碼
要寫我只好研究一下= =
目前狀態
GoKo Music進度: 10%
問個問題不要緊,可是沒有發文格式、問題不夠詳細情況,難道要用猜嗎?
新手必讀
[教學] 基本認識、學習、隨我架設phpBB的新手通 -更新至2.0.22
問問題的技巧
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=44340
MOD安裝教學及轉碼
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=22832
GoKo Music進度: 10%
問個問題不要緊,可是沒有發文格式、問題不夠詳細情況,難道要用猜嗎?
新手必讀
[教學] 基本認識、學習、隨我架設phpBB的新手通 -更新至2.0.22
問問題的技巧
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=44340
MOD安裝教學及轉碼
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=22832