ASP留言廣告的過濾方法

學識都 人氣:8.58K

留言板,論壇裏的垃圾廣告想必是每個人都很頭疼的問題,爲什麼屢禁不止?這主要是大量的發帖機器人的惡劣行爲,當然也有人工的。過濾廣告的方法太多了,這不是我們重點討論的問題。留言板,加入了很完善的廣告過濾機制,比如說,留言中不包含中文,或者包含2個以上的http等等就認爲是廣告,的確也起到了作用,自己測試也一切正常。但是隨後,依舊有大量的垃圾廣告留言,我百思不得其解,這些廣告是怎麼發上去的呢?按照廣告內容我手動實驗輸入是不能發上去的。難道直接寫數據庫?這個在隨後也否定了,我檢查了數據庫,所有寫入內容均是正常的。這下我真的不知道哪裏出了問題,搜索了半天也沒搜索到結果。

ASP留言廣告的過濾方法

一個偶然的機會,調試JS的`時候,我突然想到,所有的驗證機制,過濾機制全部是寫在JS裏的,如果瀏覽器禁止運行JS腳本呢?我把瀏覽器的允許運行JS腳本給關閉掉,結果不出所料,廣告猶如闖入無人之境,可以隨便發了!

一個設置,就讓我們的防禦系統徹底崩潰!JS真是對你又愛又恨!

找到了問題,解決也不難,那就是在ASP或PHP中進行過濾了,這裏以ASP爲例:比如說檢查留言有沒有包含中文字符

tion CheckExp(patrn, strng)

02. Dim regEx, Match

03. Set regEx = New RegExp

04. ern = patrn

05. reCase = true

06. al = True

07. Matches = (strng)

08. CheckExp = matches

Function

10.

11.

tion chkzi2(f_Str)

13. if Not IsNull(f_Str) Then

14. if CheckExp("^[^u4E00-u9FA5]+$", f_Str)=True then

15. chkzi2=False '不包含中文

16. Else

17. chkzi2=True '包含中文

18. End If

19. End If

Function

利用一個正則表達式來檢測,這樣的腳本是不會被過濾的

所以,如果有重要的檢測機制,除了JS中寫一遍外,頁面文件中最好也寫一遍,否則,遇到這種禁用JS腳本的瀏覽器,所有的防禦就徹底無效了!

TAGS:ASP 過濾 廣告