袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

asp留言、发帖如何防止垃圾信息进入

浏览量:920

过滤垃圾信息的方法:

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

    有一定效果,有总比没有的好


打赏