论坛风格切换切换到宽版
  • 3425阅读
  • 0回复

asp消息留言、发帖如何防止垃圾信息进入 [复制链接]

上一主题 下一主题
离线yycadmin
 

发帖
1995
铜币
22151
威望
509
只看楼主 倒序阅读 使用道具 楼主  发表于: 2014-11-05
1、加验证码。自从加了验证码垃圾机器没那么猖狂了,不会几十几十的发,最多发一两条。
2、用js过滤关键字。在发布页面上加上如下代码:
<SCRIPT type=text/javascript>
function sendForm(obj)
{
if(obj.cont.value.match('com|cn|net|org|http|<|>|>|<|<|>|&|&|&')){
alert('评论中包含被屏蔽的字符!');
obj.cont.focus();
return false;
}
obj.submit();
return true;
}
</SCRIPT>
  
<INPUT onclick=sendForm(this.form); type=button value="发 布" name=go>  //在提交表单里要加上这红色的代码。
    有一定效果,屏蔽过一些垃圾机器。如果是绕过页面提交数据那就没办法了。
3、判断内容是否包含汉字。据我观察,垃圾信息都是英文的,特别多的网址还有英文语句。
在接受数据页面加这些代码:
    <%dim a,b,c
  a=trim(request.form("cont"))  //红色代码是接收post过来的数据
  b=len(a)
  for i=1 to b
  if asc(mid(a,i,1))<0 or asc(mid(a,i,1))>255 then
  c=1
  exit for
  else
  c=2
  end if
    next
  if c=2 then
  response.Write"<script> alert('没有汉字,请重新输入!');history.back(-1);</script>"
  response.End()
  End if%>
    效果还可以,可以防止一些全是英文的垃圾评论。
4、判断来路。
    在接收页面加上这些代码:
dim server
server=Cstr(Request.ServerVariables("HTTP_REFERER"))
if server="" or instr(server,"/article.asp")<=0 then
response.write "<SCRIPT language=JavaScript>alert('来源非法,禁止外部提交!');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
response.end
end if
  
    有一定效果,可以防止垃圾机器直接提交数据。
5、判断来源提交的时间。如果在提交页停留的时间太短,比如20秒,一般只要是个人,他打字的时间都不必这个少。举例说明,在用户打开页面(如article.asp)的时候既是发布页面,我们记下这个时间,在form提交表单里增加一个隐藏对象,如:
    <input name="Int" type="hidden" value="<%=Now()%>">
    然后再接收页面加上:
If DateDiff("s",request.form("Int"), Now()) < 20 then
response.write "<SCRIPT language=JavaScript>alert('您的留言速度太快了吧,禁止留言!');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
response.end
end if
    有一定效果,有总比没有的好
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个