十分钟解决爬虫问题!超轻量级反爬虫方案


 

爬虫和反爬虫日益成为每家公司的标配系统。爬虫在情报获取、虚假流量、动态定价、恶意攻击、薅羊毛等方面都能起到很关键的作用,所以每家公司都或多或少的需要开发一些爬虫程序,业界在这方面的成熟的方案也非常多;有矛就有盾,每家公司也相应的需要反爬虫系统来达到数据保护、系统稳定性保障、竞争优势保持的目的。

然而,一方面防守这事ROI不好体现,另一方面反爬虫这种系统,相对简单的爬虫来说难度和复杂度都要高很多,往往需要一整套大数据解决方案才能把事情做好,因此只有少量的公司可以玩转起来。当出现问题的时候,很多公司往往束手无策。

本文将描述一种尽量简单的反爬虫方案,可以在十几分钟内解决部分简单的爬虫问题,缓解恶意攻击或者是系统超负荷运行的状况;至于复杂的爬虫以及更精准的防御,需要另外讨论。

整套方案会尽量简单易懂,不会涉及到专门的程序开发,同时尽量利用现有的组件,避免额外组件的引入。内容上主要分为三大部分:

访问数据获取。采集用户的访问数据,用来做爬虫分析的数据源

爬虫封禁。当找到爬虫后,想办法去阻断它后续的访问

爬虫分析。示例通过简单策略来分析出爬虫

  简单的数据获取

数据获取是做好反爬虫系统的关键,常见的几种模式



 

本篇,采用nginx的日志方式,这种只需要通过对常见的nginx最简单的配置就能从远程获取相应的访问日志

官方nginx配置:

1. log_format warden '" "$remote_addr" "$remote_port" "$server_addr" "$server_port" "$request_length" "$content_length" "$body_bytes_sent" "$request_uri" "$host" "$http_user_agent" "$status" "$http_cookie" "$request_method" "$http_referer" "$http_x_forwarded_for" "$request_time" "$sent_http_set_cookie" "$content_type" "$upstream_http_content_type" "$request_body"\n';

2. access_log syslog:server=127.0.0.1:9514 warden ;

tengine配置(编译时带上--with-syslog)

1. log_format warden '" "$remote_addr" "$remote_port" "$server_addr" "$server_port" "$request_length" "$content_length" "$body_bytes_sent" "$request_uri" "$host" "$http_user_agent" "$status" "$http_cookie" "$request_method" "$http_referer" "$http_x_forwarded_for" "$request_time" "$sent_http_set_cookie" "$content_type" "$upstream_http_content_type" "$request_body"\n';

2. access_log syslog:user::127.0.0.1:9514 warden ;

这里面需要注意的是:

由于较老的nginx官方版本不支持syslog,所以tengine在这块功能上做了单独的开发(需要通过编译选项来启用),在不确定的情况下,请修改配置 文件后先使用(nginx -t)来测试一下,如果不通过,需要重新在configure时加上syslog选项,并编译。

尽量获取了跟爬虫相关的数据字段,如果有定制的http header,可以自行加上 采用udp方式来发送syslog,可以将访问日志发送给远端分析服务,同时udp的方式保证nginx本身不会受到影响

访问日志拿不到响应的具体内容(nginx有办法搞定,但有代价),无法支持业务相关的防护

  简单的爬虫封禁

反爬虫最后的生效,需要靠合理的封禁模式,这里比较几种模式:



(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

未来改变企业安全体系形态的几种安全产品

未来改变企业安全体系形态的几种安全产品

众所周知,云计算、SaaS等在很大程度上的改变现在企业的IT架构。新型的安全问题层出不...[详细]

十分钟解决爬虫问题!超轻量级反爬虫方案

十分钟解决爬虫问题!超轻量级反爬虫方案

爬虫和反爬虫日益成为每家公司的标配系统。爬虫在情报获...[详细]

小心网络布线中易犯十类错误

小心网络布线中易犯十类错误

网络布线是一项十分繁琐和复杂的工作,但目前看来从事这项工作的人员中还普遍存在着相...[详细]

怎样为企业挑选正确的EDR解决方案

怎样为企业挑选正确的EDR解决方案

尽管黑客的动机一如既往钱、信息、更多的钱,他们的攻击方法却变得愈加复杂、具侵略性...[详细]

研究人员开发了一款无法被检测到的工控系统

研究人员开发了一款无法被检测到的工控系统PLC Rootkit

两名安全研究人员开发出了一款无法被检测到的PLC Rootkit,并计划在即将到来的2016欧...[详细]

返回首页 返回顶部