動網論壇對付論壇群發軟件的方法_動網論壇教程
現在已有不少動網用戶受到了一種稱為“暴力營銷”(168BBS)軟件的騷擾。
該軟件可以自動注冊一個隨機的新用戶,并且發廣告帖。根據作者聲稱:該軟件可以在一小時內在2——5萬個論壇群發廣告。
官方似乎暫時還沒有公布解決方案,于是我總結了幾條解決的方法,供大家參考。
希望大家把自己改后的效果反饋一下,以便更好地對付群發。同時也希望大家把自己比較好的方法和大家分享。
不是每條都要挨著執行,也不是每條都一定有效,你可選用其中的幾種方法。
根據大家的反饋,發現第二和第五兩種方法最有效果,推薦使用。尤其是二!
一、更正驗證碼的易破解性
之前不論在7.0和7.1中,驗證碼都存在著缺陷,可以通過程序自動識別出驗證碼上的數字,于是沒有真正起到驗證碼的作用。我們可以在注冊時設置使用驗證碼,再按照以下方法修改。
驗證碼文件是Dv_GetCode.asp(7.1中)
找到這段代碼:
If Rnd * 99 + 1 < cOdds Then ' 隨機生成雜點
Response.BinaryWrite vColorData(0)
Else
將其改為
If Rnd * 99 + 1 < cOdds Then ' 隨機生成雜點
If Mid(vNumberData(vCode(ii)), i * 10 + iii, 1) Then
Response.BinaryWrite vColorData(0)
Else
Response.BinaryWrite vColorData(1)
End If
Else
另外,找到以下代碼
Const cOdds = 2 ' 雜點出現的機率
把2設置的稍大一些,建議設置為5~10。
以上部分的修改已經被很多實踐證明效果很不明顯。假如你有耐心,可以再試用手工修改驗證碼圖片的方法(因麻煩故不推薦),這個一定有效果!如下:
這里我給出了一個自己做驗證碼的方法,里面有說明。
mb5u_DVBBS附件
這個是另一個朋友提供的驗證碼工具:http://bbs.dvbbs.net/dispbbs.asp?boardID=8&ID=958224&page=1
使用7.0的用戶可以用7.1的這個文件覆蓋原來的。如果你修改了驗證碼的圖片,可以不再考慮雜點的問題。
二、更改提交表單的元素屬性
此方法為“研究動網”朋友提出來的。它可以在不用驗證碼系統的條件下對付群發軟件。
在論壇注冊頁面,用戶名,密碼文本框的 name屬性分別默認為name和psw。我們可以修改其屬性達到限制軟件注冊的效果。
具體方法如下,7.0和7.1均適用:
進入后臺,風格界面模板總管理 / 分頁面模板(page_login) / 界面風格 / template.html(13)
找到 <INPUT maxLength="{$NameMaxLength}" size=30 name=name>
將粉色的name改為其他值,比如改成 “name1”
然后打開reg.asp,以關鍵詞Request.form("name")進行搜索
將其全部替換為Request.form("name1")
當然那個name1就是剛才你在風格模板里改的值
三、設置注冊延時
設置新注冊用戶不能發帖,要一分鐘或更多的時間后才能發帖。這樣可以在一定程度上抵制非注冊軟件的攻擊。但是對注冊了的軟件沒有作用。
四、設置至少要有一個中文字符注冊
這個方法并不太好,因為很多人實際上都比較喜歡用純英文名。但是有不少朋友提出這個想法,這里還是列出在7.0和7.1里面的修改方法吧:
reg.asp文件,在藍色代碼
If Instr(username,"=")>0 or Instr(username,"%")>0 or Instr(username,chr(32))>0 or Instr(username,"?")>0 or Instr(username,"&")>0 or Instr(username,";")>0 or Instr(username,",")>0 or Instr(username,"'")>0 or Instr(username,",")>0 or Instr(username,chr(34))>0 or Instr(username,chr(9))>0 or Instr(username,"")>0 or Instr(username,"$")>0 or Instr(username,"|")>0 Then
Dvbbs.AddErrCode(19)
Exit sub
End If
下添加以下紅色代碼
Dim IsCHName
IsCHName = False
For i = 1 To Len(UserName)
If Asc(Mid(UserName, i, 1)) < 0 Then
IsCHName = True
Exit For
End If
Next
If Not IsCHName Then
Response.redirect "showerr.asp?ErrCodes=<li>請至少輸入一個中文字符。&action=OtherErr"
End If
五、修改注冊頁面的地址
首先將論壇根目錄下的reg.asp改名,比如改成reg1.asp,然后進入后臺 / 風格界面模板總管理
在main_Style,Page_Login的“界面風格”中搜索“reg.asp”(注意7.0中不要把chkreg.asp替換了),全部替換成比如“reg1.asp”
===========================================================
幾點補充(2005-06-14):
1、第一種方法前半部分關于修改論壇雜點的方法已證明無用。
2、第二種方法中,當用戶注冊一個已經存在的用戶名時,檢測帳號時提示"可以正常注冊",而實際上卻不能。
這是個比較小的問題。
可以修改inc/Mymodify.js。找到document.theForm.name.value,將其改成document.theForm.name1.value(假設你以前是將“name”改成“name1”。要注意的是這個改后的名字比如name1只能是字母數字和下劃線的組合且首字符必須是字母)。
3、第五種方法需要修改的分頁面模板除了Main_Style,page_login以外,還有page_index,page_paper_even_toplist,page_showerr,page_post。
4、對付“群發王”,“論壇狂帖”等利用已注冊的用戶來發帖的軟件。
后臺 / 風格界面模板總管理 / page_dispbbs / 界面風格
后臺 / 風格界面模板總管理 / page_post / 界面風格
搜索name="Body",全部替換成比如name="Body1",然后打開savepost.asp,將Request.Form("body")替換成比如Request.Form("Body1") 。
5、幾個供參考的鏈接:
以理論的角度論對抗群發軟件,兼論OCR
http://bbs.dvbbs.net/dispbbs.asp?boardID=8&ID=968567
群發軟件“論壇狂帖”v2.0的工作原理
http://bbs.dvbbs.net/dispbbs.asp?boardID=8&ID=994194
“QBQ戰鷹”重新修改過的驗證碼生成程序
http://bbs.dvbbs.net/dispbbs.asp?BoardID=8&ID=956875&replyID=1596692&skin=1
- 相關鏈接:
- 教程說明:
動網論壇教程-動網論壇對付論壇群發軟件的方法。