请教:!论坛被人恶意灌水!session的判断没起到作用!

代码如下:
if session("issuetime")="" then session("issuetime")=now():session("mcx")=0
if datediff("n",session("issuetime"),now())>1 then
session("issuetime")=now():session("mcx")=1
else
session("mcx")=session("mcx")+1
end if
if session("mcx")>2 then
conn.close:set conn=nothing
response.write "

1<script language="javascript">"   
2response.write "alert('你发贴子的速度太快了吧,别噎着!');"   
3response.write "history.go(-1);"   
4response.write "</script>

"
response.end
end if

可是对方依然能在1分钟之内发几百篇贴字,数据库都快受不了了!帮忙谢谢!
---------------------------------------------------------------

你用了session对故意取消cookie支持的,和没有支持cookie的浏览器都是不可以的!
---------------------------------------------------------------

你可以使用一个记录ip地址的和上一次登陆时间,然后通过数据库的字段对比,就可以了,这样就取决于服务器,而不取决于客户端的,虽然会占用一点系统资源,但是为了大局,还是应该的!
---------------------------------------------------------------

总的来说,用SESION就是不好的,在.NET中用还可以,在ASP中,如果用得太多、用得不好,那会有大麻烦的!

Published At
Categories with Web编程
comments powered by Disqus