ASP留言广告的过滤

本文探讨了留言板中面对浏览器禁用JS时广告难以过滤的问题,并通过案例展示了如何在ASP或PHP中进行过滤以解决此问题。重点强调了在关键验证机制中同时使用JS和页面文件代码的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

留言板,论坛里的垃圾广告想必是每个人都很头疼的问题,为什么屡禁不止?这主要是大量的发帖机器人的恶劣行为,当然也有人工的。过滤广告的方法太多了,这不是我们重点讨论的问题。这里主要说一说我遇到的情况。

我也写过留言板,加入了很完善的广告过滤机制,比如说,留言中不包含中文,或者包含2个以上的http等等就认为是广告,的确也起到了作用,自己测试也一切正常。但是随后,依旧有大量的垃圾广告留言,我百思不得其解,这些广告是怎么发上去的呢?按照广告内容我手动实验输入是不能发上去的。难道直接写数据库?这个在随后也否定了,我检查了数据库,所有写入内容均是正常的。这下我真的不知道哪里出了问题,搜索了半天也没搜索到结果。

一个偶然的机会,调试JS的时候,我突然想到,所有的验证机制,过滤机制全部是写在JS里的,如果浏览器禁止运行JS脚本呢?我把浏览器的允许运行JS脚本给关闭掉,结果不出所料,广告犹如闯入无人之境,可以随便发了!

一个设置,就让我们的防御系统彻底崩溃!JS真是对你又爱又恨!

找到了问题,解决也不难,那就是在ASP或PHP中进行过滤了,这里以ASP为例:比如说检查留言有没有包含中文字符

01. Function CheckExp(patrn, strng) 
02.  Dim regEx, Match
03.  Set regEx = New RegExp
04.  regEx.Pattern = patrn
05.  regEx.IgnoreCase = true
06.  regEx.Global = True
07.  Matches = regEx.test(strng)
08.  CheckExp = matches 
09. End Function 
10.   
11.   
12. Function 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
20. End Function

 

利用一个正则表达式来检测,这样的脚本是不会被过滤的

所以,如果有重要的检测机制,除了JS中写一遍外,页面文件中最好也写一遍,否则,遇到这种禁用JS脚本的浏览器,所有的防御就彻底无效了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值