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
%>

通过以上的限制,人工发帖也得到了一定的限制。上面的方法是基于cookies判断,当然用户可以通过浏览器清空COOKIES,但这样增加了他们发垃圾帖子的难度,提高了门槛。我们还可以继续判断发布者的IP,通过同一个IP下发帖限制数量来达到我们的目的。在此,就不再扩展,大家可以自己设计如何判断IP来限制发帖的方法。如果您对本文讨论的主题有看法或建议,欢迎留下评论,以便我们一起探讨。

时间: 2024-11-07 20:07:26

asp有效防止网站留言板出现垃圾留言/评论实现思路的相关文章

asp有效防止网站留言板出现垃圾留言/评论实现思路_应用技巧

一.在表单填写页面: <input name="intime1" type="hidden" value="<%=Now()%>"> 在提交处理页面,设置提交时间 复制代码 代码如下: If DateDiff("s",request.form("intime1"), Now()) < 5 then response.write "<SCRIPT language

怎么样在Dreamever制作网页 1.插入背景音乐 2.制作一个留言板 或类似留言板的东西 请说详细一点 我使用的是Dreamever8

问题描述 声明我用的是Dreamever81.插入背景音乐窗口--行为--添加行为--播放声音.2.制作一个留言板插入--表单--表单插入--表单--文本区域插入--表单--按钮(提交)插入--表单--按钮,属性,重设表单.(重置)因为留言板是一个整体,必须建立在同一个表单里面.而且是各一个"提交""重置"功能的按钮,可以修改按钮上的文字.

asp.net留言板问题,求大神进,急用!!!

问题描述 最近在做一个留言板,想要完成的是能够添加表情的留言板,然后留言内容存入数据库中,留言后能再通过后台从数据库中把留言内容调出来并通过gridview显示出来,现在出现的问题是,文字可以显示出来,但是图片无法显示,只能显示路径,而且当留言内容中有图片和文字同时出现的时候,从数据库中调出来的东西,不知道该怎么处理,让其正确显示,就是想请问下各位大神,大牛,这种问题要怎么处理?注:我已经将 解决方案 解决方案二:@Html.Raw([内容])解决方案三:你输出的被编码的,当然不行啦,你要输出能

linux下使用Apache+php实现留言板功能的网站_Linux

一.首先我们的linux服务器上要安装Apache和php php的安装方法和Apache方法如同一辙 请参考:http://www.jb51.net/article/94494.htm 二.关闭防火墙服务,关闭selinux 请参考:http://www.cnblogs.com/dagege/p/5947251.html 三.我们通过FTP服务或使用rz命令将文件放到Apache的根目录下 /var/www/html 示例文件下载:http://files.cnblogs.com/files/

留言板在电子商务中的地位

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 运营网站这么长时间以来,逐渐的发现留言板在网站中的重要性越来越突出.现在大家天天在谈WEB2.0.在我的理解中,web2.0就是全民参与的意思.而这个因该不是什么新思想,在<打造网络品牌的11条法则>中,美国当代营销大师阿尔.里斯和女儿劳拉.里斯就在第二条法则中提到了:交互法则.他们对交互法则是这样注解的:没有了它,你的网站和你的

jsp+mysql制作简单的留言板(4)

js|mysql 对于留言板来说,是要存取数据库的:所以opendata.jsp是必不可少的.<% Class.forName("com.mysql.jdbc.Driver").newInstance();String url ="jdbc:mysql://localhost/mydate?user=root&password=zsliuyu&useUnicode=true&characterEncoding=GB2312"; Conn

如何利用FLASH制作留言板

如何利用FLASH制作留言板? 解决思路 我们可以通过FLASH  MX中自带的组建来实现一个简单的留言板实例.使用FLASH中的组件非常方便.本例只是涉及到了制作,留言板在具体的应用中还有很多FLASH以外的知识,在这里就不向大家介绍了. 具体步骤 1,  运行FLASH MX,文档属性默认. 2,  导入一幅壁纸图片留言板的背景.朋友们也可以自己设置FLASH文档背景或者建立一个图层作为背景.如图1所示. 图1    导入背景图片 3,  新建一个图层,利用文本工具,输入静态文本.并设置它们

新浪微博设置留言板时的注意事项有哪些?

  1.企业登录后只能看见留言板中的留言分类和留言列表,其他用户登录时可以看见留言板中的留言发布器; 2.留言分类分为提问.投诉.表扬.其他四大类,用户留言时如不选择任一分类标签,则默认为其他,用户在留言时可选择"同时发布到我的微博"; 3.企业在留言板中隐藏用户留言,将不影响同步到留言者个人主页的微博,即同步到用户微博中的内容不会被同时隐藏; 4.若用户在留言板内删除个人留言,将不影响其同步到其微博主页的单条微博,即同步到用户微博主页的微博不会被同时删除.若用户删除同步到个人主页的微

新浪微博企业如何管理留言板中的内容?

  1.留言板分类查看功能:企业登录之后看到企业主页留言板页面只有留言列表,留言列表分为全部.提问.投诉.表扬.其他五个分类,企业用户可通过切换标签,查看和处理不同类别的用户留言; 2.企业用户对单条留言可进行回复.隐藏的处理,企业用户的回复默认不同步到企业主页.但是企业在留言板中若使用隐藏用户留言的功能,将不影响同步到留言者个人主页的微博,即同步到普通用户的微博不会被同时隐藏.企业可以通过"已隐藏的留言"而查看已经被隐藏的留言;