當前位置:才華齋>IT認證>ACCP>

ASP留言廣告的過濾方法

ACCP 閱讀(7.61K)

留言板,論壇裡的垃圾廣告想必是每個人都很頭疼的問題,為什麼屢禁不止?這主要是大量的發帖機器人的惡劣行為,當然也有人工的`。過濾廣告的方法太多了,這不是我們重點討論的問題。留言板,加入了很完善的廣告過濾機制,比如說,留言中不包含中文,或者包含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指令碼的瀏覽器,所有的防禦就徹底無效了!