您现在的位置: 阿标在线 >> 技术文章 >> 本站作品 >> 动力3.62相关 >> 正文

动力3.62版 防止垃圾留言

[ 录入:admin | 点击数: | 更新时间:2005-3-30 6:08:00]

原文链接:http://bbs.asp163.net/dispbbs.asp?boardID=34&ID=100843&page=1

1.修复:

打开数据库,改guest表名为任意名字

导入以前备份的guest,全部删除记录。

做一次压缩和修复(此操作是使留言的id连续,不是必要的)。

复制除最后的垃圾留言以外的全部留言到新导入的表中。删除原来的被改过名的表。

上传!

注意:

恶意留言在后台不能删除不是因为超过500字这个限制,“无法删除”的原因来自Access 2000 BUG,当数据库中包含了特殊字符就会产生,但我目前不清楚哪些字符会产生此错误。只是知道用Access 2000编辑过的数据库会产生此错误。可能数据库上传前用Access 2000以上版本压缩修复,就不会产生此错误(未测试)


2.站外提交例子:

http://www.32032.com/guestbook/Guestbook.asp?action=savewrite&GuestSex=0&GuestName=kkkkkk&GuestTitle=kkkkkk&GuestContent=kkkkkk&Guest_ChkCode=%%%%

留言操作反馈信息


您的留言已经发送成功!
只有管理员审核通过的留言才会显示出来。

【查看留言】【签写留言】
  

继续点以上连接:

留言操作反馈信息


请不要连续发送内容相同的留言或空留言!

那就再加几个k!

http://www.32032.com/guestbook/Guestbook.asp?action=savewrite&GuestSex=0&GuestName=kkkkkkkkkk&GuestTitle=kkkkkkkkkk&GuestContent=kkkkkkkkkk&Guest_ChkCode=%%%%


3.防止站外提交

inc/admin_code_guest中添加红色部分:

'=================================================
'过程名:SaveWriteGuest()
'作  用:保存留言
'参  数:无
'=================================================
sub SaveWriteGuest()
 dim SaveEditId,GuestName,CheckCode,GuestSex,GuestOicq,GuestEmail,GuestHomepage,GuestFace,GuestImages,GuestIcq,GuestMsn
 dim GuestTitle,GuestContent,GuestIsPrivate,GuestIsPassed
 dim GuestPassword,GuestPasswordConfirm,GuestQuestion,GuestAnswer,GuestUserlevel
 dim sqlMaxId,rsMaxId,MaxId,Saveinfo,sqlReg,rsReg

 '20050318guing.com老少平安添加阻止站外提交留言
 dim ComeUrl,cUrl
ComeUrl=lcase(trim(request.ServerVariables("HTTP_REFERER")))
if ComeUrl="" then
 response.write "<br><p align=center><font color='red'>对不起,为了系统安全,不允许直接输入地址访问本页面。</font></p>"
 response.end
else
 cUrl=trim("http://" & Request.ServerVariables("SERVER_NAME"))
 if mid(ComeUrl,len(cUrl)+1,1)=":" then
  cUrl=cUrl & ":" & Request.ServerVariables("SERVER_PORT")
 end if
 cUrl=lcase(cUrl & request.ServerVariables("SCRIPT_NAME"))
 if lcase(left(ComeUrl,instrrev(ComeUrl,"/")))<>lcase(left(cUrl,instrrev(cUrl,"/"))) then
  response.write "<br><p align=center><font color='red'>对不起,为了系统安全,不允许从外部链接地址访问。</font></p>"
  response.end
 end if
end if
 '0318guing.com修改结束


 4.设定500字留言上限

在INC/admin_code_guest.asp:

'=================================================
'过程名:SaveWriteGuest()
'作  用:保存留言
'参  数:无
'=================================================

查找到以下内容

  if session("CheckCode")="" then
  call Guest_info("<li>你登录时间过长,请重新返回登录页面进行登录。</li>")
  exit sub
end if
  if CheckCode<>CStr(session("CheckCode")) then
  call Guest_info("<li>您输入的确认码和系统产生的不一致,请重新输入。</li>")
  exit sub
end if
if GuestName="" or GuestTitle="" or GuestContent="" or len(GuestContent)>500  then
  call Guest_info("<li>留言发送失败!</li><li>请将必要的信息填写完整!</li><li>留言不能超过500字!</li>")
  exit sub
end if

红色部分。


 5.隐藏action参数

<form name="formwrite" method="post" action="<%=strFileName%>?action=save_write" onSubmit="return check(formwrite)">

改成

<form name="formwrite" method="post" action="<%=strFileName%>" onSubmit="return check(formwrite)">
<input type="hidden" name="action" value="save_write">

效果更佳,显示留言成功与否的页面的地址拦将隐藏参数 guestbook.asp?action=save_write


--  作者:风中玫瑰
--  发布时间:2004-11-21 14:14:00

--  留言板被攻击的解决办法——提供下载

一直以为有人和我过不去呢,原来是和动力过不去啊——呵呵,看来我没那么大的魅力哦。希望高手看了手下留情,不要对我进行攻击哦,我只想帮助一下和我一样的菜鸟们,一直以来,希望61.157.221.12的朋友不要对我们这帮菜鸟级别的人再进行攻击了。其实你就只想做做广告,又何必让人家的留言本打不开呢?既然是广告,打不开对你又有何好处呢?真是不明白啊。


 

最简单的解决办法:打开admin_guest.asp,找到


 

  if UserSex=1 then
   TipSex="(酷哥)"
  elseif UserSex=0 then
   TipSex="(靓妹)"
  else
   TipSex=""
  end if


 

大概在286-292行,删除这段文字后保存即可。这样大家就可以进入后台管理,把这些没用的留言删除了。这个方法比较笨,但至少不用把整个数据库下载下来。当然可以有稍微高明些的办法,那就是模仿一下Admin_ChkPurview.asp的功能,禁止直接在地址栏输入及外部地址的提交。


 

最后,希望61.157.221.12朋友在做广告的时候不要黑我们!更希望动力的朋友们把这个系统更加完善。


 

我把自己修改的关于admin_guest及inc/admin_code_guest.asp两个文件上传,希望对大家有所帮助。修改内容如下:
1、纠正后台性别显示出错的问题,由于在后台删除后前台即可恢复正常,故认为前台没有必要修改,而且能保留前台显示留言者的性别。(修改文件为admin_guest.asp)
2、禁止外部提交的留言以及直接从地址栏输入代码直接提交留言(使用动力后台管理防止攻击的代码)。同时禁止某些字词的过滤功能。(修改文件为inc/admin_code_guest.asp,修改内容文件里已经标明vastman修改内容开始及结束)

大家可以试试,至少对于目前的这个攻击来说应该是个不错的解决办法。


  • 上一篇文章:

  • 下一篇文章: