www.hopercorner.com,这个是我的网站,现在有个问题,貌似被攻击了
我这个网站上有一个功能是,网友发一篇文章内容,下面会有点击支持评论的,有两个选项,因为网站比较新目前流量很少的,但是我发现这个点击数最近经常达到一两百,这明显不是网友点击的,应该是被恶意攻击了。
我这个功能是用js调用ajax实现的,可能是恶意调用我这个js吧,请各位帮我看看,怎么防止这种情况,目前网站被攻击的数据库连接经常达到最大,网上租的虚拟空间资源很快就被占满,网站经常出现打不开报错的情况。
请各位帮帮我,好郁闷啊!

解决方案 »

  1.   

    ...href="javascript:clickReply(1,262,0);">有意思</a>
    是这个函数被js攻击调用了么?
    刚刚试了下,很容易就实现了地址栏的js注入攻击,使用循环可以轻松增加无数个好评js攻击 似乎没办法的样子,无论如何不能阻止。点击事件函数不用全局函数改用局部函数应该可以防止地址栏的js注入
    最好的办法还是在服务端验证一下,比如同一个ip一段时间只能顶几次之类,还有两次请求间定一个时间间隔
      

  2.   

    就是这个函数被攻击了,有没有什么好方法在js中增加校验限制?
    能跟我讲讲什么是js地址栏注入吗?那如果别人只是疯狂的刷新我某一个页面,是不是也相当于地址栏注入,是不是也会让我的网站挂掉?该怎么样防止这样的事情呢?如果在服务器端增加ip地址的判断,还得增加数据表,增加相应的不少操作吧?感觉还是挺麻烦
      

  3.   

    客户端用cookie做个验证吧; 建议还是在服务器端做判断实际点.毕竟客户端都是可以篡改的!
      

  4.   

    疯狂刷新应该不算攻击吧?要手动操作,速度还受限制,应该不会造成网站瘫痪.
    你的这个问题是提交的函数是全局的,在地址栏都可以访问,所以注入脚本用循环调用函数的话,可以在瞬间调用很多次,这可能会造成通讯压力和服务器的压力
    注入脚本我就不贴了免得给楼主造成麻烦,虽然我觉得很多人都会至于防止,如果访问的人不多,不会有人故意攻击,可以简单把提交的函数写成局部函数,匿名函数,不过你这种写法似乎不好改
    还是用服务端验证吧,不想建数据表有个很简单的方法,用Session,用ajax请求的来源ip为键把提交次数什么的存放到相应Session,验证规定时间内的提交次数来决定提交是否有效,或者根据相邻提交的间隔时间判断是不是攻击,当然需要注意每隔一段时间要释放多余的过期的Session(好像有自动过期时间,不太确定)
      

  5.   

    服务器验证,同一个ip一段时间内只能提交一次
    客户端验证,貌似现在的浏览器很多可以直接修改你的js代码,直接攻击,没有好办法的。