[分享]消極處理註冊機器人的方法

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

版主: 版主管理群

回覆文章
linjunan
星球普通子民
星球普通子民
文章: 18
註冊時間: 2005-04-17 23:06

[分享]消極處理註冊機器人的方法

文章 linjunan »

這幾天終於有時間坐下來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>' : '&nbsp;';
在上述之,加上:if($profiledata['user_posts'] == 0) $profiledata['user_website'] = NULL;

如此,任何沒有post、且有設定個人網站的會員,在phpbb的網頁上能正常顯示,但不會秀出個人網站的連結。

只要開兩支php檔案並個加一列php語法,即可消極的處理掉惱人的註冊機器人。 :lol:

偶知道這種方法實在是很鴕鳥,但它實在是很省事。

此外,針對刪除這些帳號得同時修正數個tables,小弟正針對email帳號某種如.info || .ru之流、且user_website文字(如sex、medicine)、且post數為0的情況寫sql語法來處理。

不曉得有沒有網友有其它的想法,請給小弟建議,謝謝。
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8525
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

印象中, 有外掛就是將文章數是零的會員, 不顯示在會員列表上.

另外, 針對其留下 '網址' 的情形, 如果在註冊的頁面加上一些處理,
那麼應該也可以達到遏阻註冊機器人的效果, 甚至加速正常會員的註冊程序.

以下的修改, 提供您分享:
#
#-----[ 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">&nbsp;</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">&nbsp;</td>
	</tr>
<!-- END switch_user_logged_in -->
#
#-----[ SAVE & CLOSE ]-----
#
如此一來, 這些屬於個人資訊的資料 (欄位), 將不會出現在註冊的頁面;
只有在會員登入後, 才可以使用.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
linjunan
星球普通子民
星球普通子民
文章: 18
註冊時間: 2005-04-17 23:06

文章 linjunan »

感謝,小弟來試試看....^ ^

此外,針對那種可惡、自私使用註冊機器人的『傢伙』,有沒有什麼反制的方法? 不然,開個討論區好像這些傢伙來搗亂似的.... :evil:
makebelieve
星球普通子民
星球普通子民
文章: 14
註冊時間: 2004-05-13 15:21
來自: taipei

文章 makebelieve »

linjunan 寫:感謝,小弟來試試看....^ ^

此外,針對那種可惡、自私使用註冊機器人的『傢伙』,有沒有什麼反制的方法? 不然,開個討論區好像這些傢伙來搗亂似的.... :evil:
好久沒來了,原來大家都有此困擾,小弟的論壇因平常就常會有人會來鬧及洗版,所以剛開始並不以為意,貼了刪了就是,另外公告請網友不要去點閱那廣告網址,後來發現不對一晚一貼就超過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:會員列表及檢示個人資料小弟的論壇是不開放訪客查閱。
jwxinst
竹貓忠實會員
竹貓忠實會員
文章: 945
註冊時間: 2006-03-31 10:07
來自: New York, USA     學業狀況: 當天才...       個人狀況: 臭蛋
聯繫:

文章 jwxinst »

真正的消極方法應該是"推薦信"
就是你要有推薦信或者自己推薦自己當會員, 管理員才給你一個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
linjunan
星球普通子民
星球普通子民
文章: 18
註冊時間: 2005-04-17 23:06

文章 linjunan »

jwxinst 寫:真正的消極方法應該是"推薦信"
就是你要有推薦信或者自己推薦自己當會員, 管理員才給你一個code
呵呵, 這下傻瓜bot就不會啦吧?
^ ^ 這太累了吧。 :lol: 這可素很有耐心的人才有辦法的。不適合像偶一樣懶惰的人啦。 :oops:
linjunan
星球普通子民
星球普通子民
文章: 18
註冊時間: 2005-04-17 23:06

文章 linjunan »

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程式就解決,不消極、也不累人。^ ^
makebelieve
星球普通子民
星球普通子民
文章: 14
註冊時間: 2004-05-13 15:21
來自: taipei

文章 makebelieve »

linjunan 寫:^ ^

請教一下:『會員確認』欄位是什麼東東? 可以再說明一下嗎? 感恩啦!

改tpl到還簡單,在套template的地方改一下機制即可;看是要給它一、三、五一組,二、四、六一組,還是random...

有在國外的網站上找到一些自動註冊的程式。大致上直接對action做處理,很好奇的是它是如何能通過『確認代碼』那邊....> <

目前處理自動發言機器人是還好,處理自動註冊機器人比較麻煩些。

針對自動註冊、自動發言,小弟正在試限定來源網址;目前似乎還是有問題,如果能成功,只要加一行php程式就解決,不消極、也不累人。^ ^
小弟是將 profile_add_body.tpl 改成如下:

代碼: 選擇全部

	<!-- 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 -->
會員名稱再複製一遍而已,只是多了一個欄位騙騙對方 :lol:
我曾將註冊取消掉但還是一樣被註冊,發現它只要敲以下網址就進入註冊網頁了
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" />&nbsp;&nbsp;<input type="submit" name="submit" value="{L_SUBMIT}" class="mainoption" /></td>
所以就只有動到 profile_add_body.tpl 這個檔案而已,而這 profile_add_body.tpl 檔案就隨時跟原來的檔案換來去的,有註明 * 必填的欄位也可以隨時上下交換位置,加上若有註冊成功的就封鎖該信箱(*@...),懶人方法提供大家參考。
io_oi
星球公民
星球公民
文章: 180
註冊時間: 2002-06-19 17:18

文章 io_oi »

驗證機制改成猜燈謎
或者可程式化到站長可自製驗證問與答
例如黑松廣告"大陸偷渡客篇"
至少可以結掉一堆國外的亂文連結po文諸如此類等等

人數少的,管制嚴格的網站可使用賊遠的"推薦註冊"外掛
也是不錯的選擇...

以上,小弟愚見...
青盛密林中立,友疑問常攜提,
光萬丈照故鄉形明月映大地。
linjunan
星球普通子民
星球普通子民
文章: 18
註冊時間: 2005-04-17 23:06

文章 linjunan »

感謝~ 看來處處是高手。 (:Y)

小弟一個一個方法拿來玩玩看^ ^。
jwxinst
竹貓忠實會員
竹貓忠實會員
文章: 945
註冊時間: 2006-03-31 10:07
來自: New York, USA     學業狀況: 當天才...       個人狀況: 臭蛋
聯繫:

文章 jwxinst »

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
回覆文章

回到「站長交流」