跪求求防止恶意提交的方法,本人现维护一小网站遭人恶意攻击,寻求解决指点,在线等。

tomlee007 2008-03-27 05:24:18
小人现有网站http://www.szwbxjz.com,其中设有一个“明星小记者”的栏目,主要的想法是通过网友不记名投票选出前十位选手,但近几天总有不正常的投票数据波动,怀疑是有人恶意提交了或者是网站受到了攻击,希望专家们给予指点,不胜感激!

下面是提交投票页面的源码:

<!--#include file="conn.asp" -->
<!--#include file="../function.asp" -->
<!--#include file="../admin/function/select_field.asp" -->
<%
ID=trim(request.QueryString("ID"))

if trim(request.Cookies("iP")(ID))=ID then
Response.Write "<Script Language=JavaScript>alert('你已经投了他一票了,请不要重复投票!');history.back(-1)</Script>"
Response.end
end if

if isnumeric(ID) then
set rs=server.CreateObject("adodb.recordset")
sql="select top 1 * from [Vote] where ID="&id
rs.open sql,conn,3,3
if not rs.eof then
vote_num=rs("vote_num")
rs("vote_num")=vote_num+1
rs.update
end if
rs.close
set rs=nothing

'conn.execute("update [Vote] set vote_num=vote_num+1 where ID="&ID)
response.Cookies("IP")(ID)=ID
response.cookies("IP").expires=date()+1
end if

%>
<script language="javascript">
alert("投票成功,谢谢您的参与");
window.location.href='xjzx.asp';
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
</body>
</html>
...全文
180 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
momoco4 2008-03-28
加个判断萨
你下面加个文本框

完了你写个问题
例:a b后面是什么?
2*6=?
这样他只有手工输入c或12
用ASP判断
才能投。。。
你小站,想也不会有人专门针对站点写个投票的机器
如果有。。。
每天换一个问题。。。

另外可能你网站有漏洞
被人为改的。。。

网上下个 网站猎手之类的SQL注入工具
扫描下你站点
回复
gingerkang 2008-03-28
用cookie验证是否投票,意义不大,他删除或禁止cookie可以继续投票
没有注入的话,减少票数就不理解了
回复
FeeLiN7 2008-03-28
大哥,最起码你也得把单引号过滤了吧~~~


ID=trim(replace(request.QueryString("ID"),"'",""))

当然这还远远不够,这方面资料很多,你可以查查
回复
wjp16351 2008-03-28
你的网址是多少,我免费帮你检查一下漏洞
回复
Atai-Lu 2008-03-28
模拟cookie刷投票更容易,但是这样很容易被发现
回复
Atai-Lu 2008-03-28
你可以弄个验证码嘛,虽然验证码不一定保险,不过大半刷投票的都会卡在这关的
回复
Atai-Lu 2008-03-28
呵呵,你这种代码,人家只要有一个流量还可以的网站,然后再嵌入一段代码就可以刷投票了。。。
俺朋友就干过这种事,有人让他帮刷投票,然后他在自己网站上嵌入一段js代码,
别人访问他的网站的时候在不知不觉中就进行了投票。。。
回复
飞天神笔 2008-03-28
还有,你通过Cookies来判断是否能投第二票,这也是一处败笔

会写程序的人,用HttpWebRequest方法时不传Cookies值,你就无法判断出是否已经投过票,这样的程序能1秒投上几十至几万票(视你的网络速度而定)。

建议你在网页搜点图片式验证码程序,这样程序就无法自动通过验证了。


-----------------------------------------------------------
爱找房(http://www.izfang.com)
 我的个人网站,免费的房屋租赁网站,大家要多多捧场哦。
回复
飞天神笔 2008-03-28
你的网站在在SQL注入漏洞,网上去搜“SQL注入”,能找出很多方法。

SQL注入在在的原因,主要是你对传过来的“ID”值没有进行过滤,应该过滤掉“单引号”、“分号”、“exec”等特殊字符。不然傻子看看网上的文章就能把你黑了。
回复
tomlee007 2008-03-27
那位高手能不能帮我检测一下,看看漏洞出在哪里,有劳指点了。
回复
估计你的站被入侵了!
回复
tomlee007 2008-03-27
不是广告!就是其中有一人的数据从2000多一下串到了1万多票,并且也有减少票数的。
回复
xxgu 2008-03-27
投票人的ip要记入数据库
每次投票insert之前先去数据库判断这个ip是不是存在
回复
wlhcy 2008-03-27
把提交上了的参数过滤一下在往数据库写
回复
xiaojing7 2008-03-27
ad?
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-03-27 05:24
社区公告
暂无公告