攻防的艺术

昨天看到一个论坛被恶意攻击了,攻击手段也不是很特别,只是在论坛里发了无数垃圾贴子,在网上看了一点资料,记述如下:

防恶意发贴

【首先描述我个人想的预防方法】

记录用户上次发贴时间time,允许再次发贴间隔时间interval,重复发贴次数

如果 本次发贴时间-(上次发贴time+interval) < interval,

即:发贴时间-上次发贴time< 2 * interval,

则重复发贴次数+1;(interval时间内是不允许发贴的,2倍interval时间内发贴则增加一次重复发贴数,这么表达能明白么

更新interval = 2^重复发贴次数 * 基数时间;

比如:

设置基数时间为10min,则允许连续第2次发贴时间间隔为20min后,如果他在20-40分时又发贴了,则允许第3次发贴时间间隔为40min后,如果他在40-80分时又发贴了,则允许第4次发贴时间间隔为80min后,如果他在80-160分时又发贴了,允许第5次发贴时间间隔为160min后......呈指数增加.......遭到恶意攻击的时候把基数时间设置长一点,没有攻击的时候设置少一点就可以了

但是人家恶意刷贴是使用不同帐号的,所以这招还要结合防恶意注册来使用,见下文

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

注册后,三天内可以用邮箱激活,但是还不能立刻发言,要等激活24小时后才可以发言

用户登录后,15分钟内不许发言,但可浏览。同一台机器只能同时登录一个帐号。
同一个帐号登出后,30分钟内不允许换另外一个帐号登录,(要求用户开启cookie的功能,不开此功能的,不允许登录网站。)

你可以设置为审查后才能显示啊,用户发的信息只有通过审查才能显示,这样就可以防住了。【此为无奈之举下下策,写程序就是为了减轻自己的负担,每天审核一堆贴子多无聊】

防恶意注册

用一些防恶意注册的随机问题来拦截

用注册邮件激活

验证码

防恶意点击

以下转自《

首先我们知道防恶意点击,不能从防IP着手,因为IP是变的,如果一个人用ADSL不停地拨号更换IP来点击你的竞价广告,你是无能为力的。你屏闭的IP也有可能分配给你新的潜在客户使用,那样客户流失也是绝对可能的。那么我们能否从客户机的唯一标识出发呢?

  如果你有这种想法,你一定是想用ASP或者PHP或者JS或者其它编辑语言去获取客户端电脑的MAC地址,或者硬盘唯一串号,或者是CPU的唯一编 号。只可惜,无论你百度还是谷歌,结果都是获取不了这些信息,唯一有可能的,是通过activeX插件来获取,但新版本的IE基本都会把你的 activeX自动屏闭掉,谁会愿意点击一个提示不安全的安装提示而让你进行防恶意点击判断过滤呢?显然这是不现实的。目标只有一个,就是获取客户机的唯 一标识,前提是要友好。

  ASP跟PHP只能获取到服务器端的信息,这些就放弃吧。JS不能获取MAC地址,但可以获取到客户机的浏览器信息,这些信息足于生成一个趋近于唯一的标识号。

  属性描述IEFO

  appCodeName返回浏览器的代码名。419

  appMinorVersion返回浏览器的次级版本。4NoNo

  appName返回浏览器的名称。419

  appVersion返回浏览器的平台和版本信息。419

  browserLanguage返回当前浏览器的语言。4No9

  cookieEnabled返回指明浏览器中是否启用 cookie 的布尔值。419

  cpuClass返回浏览器系统的 CPU 等级。4NoNo

  onLine返回指明系统是否处于脱机模式的布尔值。4NoNo

  platform返回运行浏览器的操作系统平台。419

  systemLanguage返回 OS 使用的默认语言。4NoNo

  userAgent返回由客户机发送服务器的 user-agent 头部的值。419

  userLanguage返回 OS 的自然语言设置。4No9

  将JS获取到的以上信息,加上浏览器的窗口信息:

  String(window.screen.width+"x"+window.screen.height)显示器像素比

  String(window.screen.colorDepth) 显示器颜色深度

  String(window.screen.fontSmoothingEnabled) 显示器字体

  ...获取一切可以获取到的客户端数据(不同浏览器对这些函数支持不一样,但都会返回一个值,将它们连接起来)

  将所有获取到的客户端信息连接成字符串,这个产生的字符串基本上就是趋于唯一的了。得到一个唯一字符串后,那后面的事情就好办多了,但这并不能说防恶 意点击已经成功,因为同一台电脑可能安装几个不同的浏览器,即同一台电脑可能产生多个唯一标识,不过,这已经足够让我们使用了,不可能一台电脑安装无限个浏览器,就为每天对着你的竞价广告刷刷刷。

  JS获取到唯一标识后,需要通过AJAX将它传递给远程服务器上的ASP或者PHP程序进行分析,这有点类似CNZZ等统计代码,只是我们不是要做统计代码,我们不需要重新去开发一个统计系统。服务器端通过ASP或者PHP等其它编辑语言,很简单就可以对这个唯一标识进行记录,同时记录下些唯一标识对应的IP,以作备用。当每一个访问的唯一标识都记录在服务器数据库中时,可以同时记录来访者的来访关键词(获取来访者的搜索关键词百度有很多教程,在些不 赘述),通过判断,可以得知客户是否每次都是从百度搜索进来,打开后关闭,重复此操作的,基本可以定位为恶意点击。那么些唯一标识,就可以标记为拒绝访问了。

  关于如何拒绝访问,网上也有很多教程,其实可以做的,不应该是想过于偏激的手段,攻击恶意点击者。只需要给恶意点击者一点提示,防止其再次操作恶意点击就可以了。

  最简单的方法是在客户端通过JS生成唯一标识,通过AJAX比对远程服务器上的唯一标识记录,如果是拒绝访问的对象电脑,则写COOKIE到恶意点击 者的浏览器,标识为拒绝访问对象。到这一步,基本只需要做一个小程序,比如提示一下:“您的操作有恶意点击嫌疑,请放弃继续实施恶意点击,如果您喜欢本 站,可以收藏为书签”,如果对象仍然进行恶意点击,则可以通过小小的JS程序,while(true){window.open('www.xxxxxx.com','_blank') }这样无限弹出某页面导致浏览器卡死,可以根据不同程序的恶意点击,出现一些更友好的提示,或者更复杂的惩罚手段,这个取决于你。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值