1、加验证码。自从加了验证码垃圾机器没那么猖狂了,不会几十几十的发,最多发一两条。
2、用js过滤关键字。在发布页面上加上如下代码:
<SCRIPTtype=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=buttonvalue="发 布" 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 orasc(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 "<SCRIPTlanguage=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()) < 20then
response.write "<SCRIPTlanguage=JavaScript>alert('您的留言速度太快了吧,禁止留言!');"
response.write"this.location.href='vbscript:history.back()';</SCRIPT>"
response.end
end if
有一定效果,有总比没有的好