防恶意点击代码系统思路与实现

2013 年 1 月 8 日5870

  百度推广,存在即理由,其可能为企业带来的潜在利益是非常大的,然而,它的广告费用让大多数企业都无力承担.在广告投入的同时,如何尽可能减少广告投入费用,做到ROI(投资回报)的最大化呢?

  也许你可以优化百度推广账户结构,优化关键词,优化创意,但你做不到的,是同行或者其它动机的人对你的广告的恶意点击, 广州易虎技术团队,提出如下一种解决思路,虽然不能完全杜绝恶意点击,但至少可以避免部分恶意点击, 此文由广州易虎技术团队撰写,属于技术性文章,如果你看到了这篇文章,建议把它转发给你的技术支持,他会懂得怎么操作和实施这个系统。

  首先我们来搞清楚,恶意点击是如何产生的:同行关注自己的竞价排名,发现你的广告链接,希望通过消耗你的广告费用让你尽快用完推广费用而广告自动下线;同行雇枪手或指使内部员工随时随地对你的广告进行点击;百度内部有个别人员通过点击广告增加自已的业绩。 这些恶意点击可能是随时随地的,百度推广虽然有屏闭IP功能,但这些恶意点击变换IP容易致极,防不胜防。

  市面上不少防恶意点击软件,鼓吹其功能能防所有恶意点击,且不说是否能起到作用,仅费用就让人半信半疑。 好了,入正题,如何自写防恶意点击系统?

  首先我们知道防恶意点击,不能从防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('http://www.zjjv.com/','_blank') }这样无限弹出某页面导致浏览器卡死,可以根据不同程序的恶意点击,出现一些更友好的提示,或者更复杂的惩罚手段,这个取决于你。

  至此,百度竞价防恶意点击系统的思路及实现方法已经讲完,本人进行了代码编写,JS和动态语言的交互,基本可以实现防恶意点击,但是,良好的互联网环境,本不应该出现这类型防恶意点击代码。广州易虎倡导绿色互联网环境,希望此小程序可以帮助你减少恶意点击给你带来的损失,也希望更多的恶意点击者放弃这一不公平、不合法的竞争手段。

  本文由广州易虎http://http://www.zjjv.com//原创提供,A5首发,转载请注明,谢谢围观。

0 0