加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

利用ASP技术可有效地清理留言板中的无用留言和评论

发布时间:2023-10-18 12:55:49 所属栏目:Asp教程 来源:
导读:利用ASP技术,可有效地清理留言板中的无用留言和评论。一.在表单填写页面: <input name="intime1" type="hidden" value="<%=Now()%>">在提交处理页面,设置提交时间代码如下:If DateDiff("s",request.form("intime1")

利用ASP技术,可有效地清理留言板中的无用留言和评论。

一.在表单填写页面: <input name="intime1" type="hidden" value="<%=Now()%>">

在提交处理页面,设置提交时间

代码如下:

If DateDiff("s",request.form("intime1"), Now()) < 5 then

response.write "<SCRIPT language=JavaScript>alert('您的留言速度太快,禁止留言!');"

response.write "this.location.href='vbscript:history.back()';</SCRIPT>"

response.end

end if

二.验证码

代码如下:

yz=cstr(request.Form("yz"))

yz1=cstr(session("yz1"))

if yz1<>yz then

Response.Write("<script language=javascript>alert('请正确输入验证码!');</script>")

response.redirect("sign.asp")

end if

三.判断来路

代码如下:

server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))

'Response.Write(server_v1)

server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))

'Response.Write(server_v2)

if mid(server_v1,8,len(server_v2))<>server_v2 then

Response.Write("<script language=javascript>alert('禁止外部提交数据!');</script>")

response.end

end if

四.设置每日提交次数

代码如下:

'当用户每提交一次

if request.cookies("postnum")="" then

response.cookies("postnum")=1

response.cookies("postnum").expires=DateAdd("h", 24, Now())

else

response.cookies("postnum")=request.cookies("postnum")+1

end if

if request.cookies("postnum") > 3 then

response.write "<SCRIPT language=JavaScript>alert('今天留言次数超过限制,禁止留言!');"

response.write "this.location.href='vbscript:history.back()';</SCRIPT>"

response.end

end if

五.禁止IP

代码如下:

server_ip=Cstr(Request.ServerVariables("REMOTE_ADDR"))

if right(server_ip,8) = "194.165." then

response.write "禁止重叠提交194.165."

response.End()

end if

1、判断该发布信息是否有可靠的来路。只要是自然人发布的,那么他一定是通过我们提供给用户的提交页过来的,一定有一个来路;如果是机器发布的,就不会有来路信息。

'判断来路,禁止外部提交

代码如下:

dim server_v1,server_v2

server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))

server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))

if server_v1="" or instr(server_v1,"/add.asp")<=0 or mid(server_v1,8,len(server_v2))<>server_v2 then

response.write "<SCRIPT language=JavaScript>alert('来源非法,禁止外部提交!');"

response.write "this.location.href='vbscript:history.back()';</SCRIPT>"

response.end

end if

注意,上面的/add.asp就是提交页面来源页。当然,机器也可以伪造来路,这就要结合以下方式一起对付了。

2、验证码。验证码一直是对付机器垃圾留言的一个可行的方法。不同的验证码有不同的对付机器留言的能力,越复杂的验证码,机器越难破解。这需要在考虑用户的感受和对付机器之间选择一个平衡点。关于验证码的使用方法,我就不多说了,谷歌、百度里搜索下就会出现很多介绍。

3、判断来源提交的时间。如果在提交页停留的时间太短,比如20秒,一般只要是个人,他打字的时间都不必这个少。举例说明,在用户打开页面(如add.asp)的时候,我们记下这个时间,在form提交表单里增加一个隐藏对象,如:

<input name="intime1" type="hidden" value="<%=Now()%>">

然后,当用户写好留言评论后提交到具体处理页面(如addok.asp)的时候,我们获取当前时间,和add.asp里的这个intime1时间比较,如果这个时间差小于设定的时间,如20秒,则禁止留言,判断为机器。代码可这样写:

代码如下:

If DateDiff("s",request.form("intime1"), Now()) < 20 then

response.write "<SCRIPT language=JavaScript>alert('您的留言速度太快了吧,禁止留言!');"

response.write "this.location.href='vbscript:history.back()';</SCRIPT>"

response.end

end if

通过以上三种方法可以屏蔽掉绝大部分的机器垃圾留言评论,如果还有大量的留言的话,那多半是人肉留言了。但是,我们又如何对付人肉留言呢?flymorn也提供方法对付。

方法很简单,就是通过记录用户的cookies以及IP来限制同一用户发表留言的数量。比如一天24小时内,只允许同一用户发表信息5条。我们可以通过以下方法实现。

代码如下:

<%'当用户每提交一次

if request.cookies("postnum")="" then

response.cookies("postnum")=1

response.cookies("postnum").expires=DateAdd("h", 24, Now())

else

response.cookies("postnum")=request.cookies("postnum")+1

end if

if request.cookies("postnum") > 5 then

response.write "<SCRIPT language=JavaScript>alert('今天留言次数超过限制,禁止留言!');"

response.write "this.location.href='vbscript:history.back()';</SCRIPT>"

response.end

end if

%>

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章