共计 3275 个字符,预计需要花费 9 分钟才能阅读完成。
我国目前并未出台专门针对网络爬虫技术的法律标准,但在司法实际中,相干裁决已不足为奇,K 哥特设了“K 哥爬虫普法”专栏,本栏目通过对实在案例的剖析,旨在进步宽广爬虫工程师的法律意识,通晓如何非法合规利用爬虫技术,警钟长鸣,做一个违法、护法、有准则的技术人员。
案情介绍
深圳市快鸽互联网科技有限公司 2014 年成立,晚期做互联网金融,2017 年转型做互联网科技公司,主营业务是“助贷”,也就为按揭贷款购房的客户提供赎楼及债权置换贷款等服务。
公司的业务须要经常性地拜访 深圳市政府居住证网站 ,查问房产地址、屋宇编码和学区房的应用状况,用于做房产的市场评估和客户危险评估。 因为手动查问效率低下,公司产品组经探讨后提出了一个倡议——用爬虫技术主动查问。
2017 年 12 月,CTO 安顿新入职的程序员负责这个我的项目,要求他研发一个主动定时抓取的小程序,次要用来查问、下载网上的数据。
2018 年 1 月,项目经理给程序员一个抓取数据的小程序源代码,程序员开始批改。
2018 年 3 月,程序被部署在阿某云服务器上主动运行,其内置的“网络爬虫”对接了深圳市公安局人口管理处的居住证零碎,能够在深圳市居住证网站上查问到房产地址、屋宇编码等对应的材料,软件对网站访问量能达到每小时数十万次,查问的信息都被下载保留到公司购买的阿某云服务器上。
2018 年 4 月 27 日 10:43-12:00 左右,居住证零碎的承建单位发现零碎呈现宕机景象,追踪到申请应用服务器端口编号,但因日志缺失而无奈定位 IP 起源,过后狐疑是人为攻打。
2018 年 5 月 2 日 10:00-12:00 左右,零碎再次遭逢攻打,这次管理人员胜利地截取了 IP 地址并报案。
2018 年 5 月 17 日早晨 11 点,服务器保护人员接到了阿某云客服的电话。阿某云说他们公司的服务器 IP 被网警锁定了,因有攻击行为,让他们连忙分割网警。
2018 年 8 月,CTO、程序员被捕。
案发时,深圳市居住证服务平台的注册用户超过 530 万,服务面包含:所有市民的网上自助受理零碎、151 个派出所、街道办居住证受理点的现场受理零碎、后盾接口为市网格办、市交警局、市民政局,市交委等多个政府部门提供居住证、寓居注销条件查问和审核。
居住证零碎受攻打瘫痪期间,软件对深圳市居住证零碎查问访问量为每秒 183 次,共计查问信息约 151 万条次,抓取了大量建筑物编码数据,造成政府信息透露;所有居住证办理、寓居注销申报、信息查问、对外服务性能均无奈失常工作,影响面极广,市民无奈办理居住证和寓居注销,相干生产生存秩序受到重大影响。除了此次攻打,还有一些派出所出具证实证实 5 月期间经常出现零碎无奈登陆,录入过程频繁呈现掉线、零碎数据异样等状况。居住证零碎无奈失常应用、出现异常状况的工夫长达一个多月。
供述状况
CTO 的局部供述和辩解:我司查问并下载深圳市居住证网上的数据信息没有进行市场交易,没有跟其余公司进行资源置换,也没有通过查问信息行为获利。我不分明这款爬虫软件对深圳市居住证网站及零碎造成的影响、深圳市居住证网站及零碎的承载能力、爬虫软件的具体的启动和部署状况,但我晓得从技术上来讲如果超过服务器承载能力的查问必定会引起零碎卡顿或瘫痪,所以我口头要求留神查问工夫、管制查问频率,我司并无任何歹意去主观进行攻打。
程序员的局部供述和辩解:抓取数据的原程序是谁研发的我不晓得,过后我接到这个工作时,是公司领导把源代码给我后让我批改的。这个程序查问信息的频率我不分明,共查问多少条信息我也不分明,我没有因查问深圳市居住证网站的信息而获利,这是我的工作工作。
裁决状况
法院认为,被告人杨杰明、张国栋违反国家规定,对计算机信息零碎性能进行烦扰,造成为 5 万以上用户提供服务的计算机信息零碎不能失常运行累计 1 小时以上,结果特地重大,其行为已形成毁坏计算机信息零碎罪。
CTO 负责并受权程序员开发涉案爬虫软件,系主犯,判处 有期徒刑三年 ;程序员受指派开发爬虫软件,在共同犯罪中起主要作用,系从犯,判处 有期徒刑一年六个月。
裁决文书全文:https://wenshu.court.gov.cn/w…
反思总结
- 爬虫程序日志记录、监控告警的重要性:本案中,在被捕之前就有过一次指标网站宕机的状况,这时候申请成功率、数据量大小、指标网站服务器的响应状况等必定会出现异常,正确的做法是有肯定的告警策略,间断呈现多少次无数据、指标网站拜访异样的时候,就应该告警告诉到程序员,特地是政府网站,本案中的程序显然没有这些性能,导致程序员未能及时发现问题并进行解决,要晓得这次对方运维人员并没有胜利定位到 IP,及时处理齐全能够防止成为“爬虫牢玩家”,给过一次机会都把握不住,警察上门才晓得酿成大祸,到那时候所有都晚了。
- 爬虫代码的健壮性:依据本案中程序员的供述,指标网站更新了验证码登录的性能,然而程序并没有针对这种状况做解决,也没有及时更新,导致程序呈现死循环,进而导致短时间内呈现了大量申请,这就体现了代码健壮性的重要性,在编写程序时就要综合思考到可能呈现的状况,检测到某个接口异样,无奈拿到正确的数据,重试是失常的,但不能任何状况都重试,也不能始终重试呈现死循环的状况,应该有正当的规定,正当的重试次数,超过设定的次数就应该告警并进行程序的运行,一部分程序员喜爱间接暴力应用
try except
语句间接捕捉所有异样,而后except
里就间接重试,正确的做法是针对不同可能呈现的异样做不同解决,取值异样应该怎么解决,连贯异样应该怎么解决等等。 - 防止繁多实在 IP 采集:本案中的程序应用一个固定 IP 采集了约 151 万条次的数据信息,很显然指标网站没有封 IP 的策略,但这并不意味着咱们程序就不必应用代理,当然应用代理,也得建设在非法合规的申请之上,局部代理商也会帮助你判断申请是否合规,欠缺的申请统计也能帮忙你判断是否出现异常状况。
- 爬虫频率管制:本案中,造成指标服务器宕机时,程序的并发是每秒 183 次,在一般的爬虫程序中这点儿并发的确不是很大,但要留神的是,指标网站是政府网站,尤其是中央政府的专属职能零碎,这些网站在软硬件上都不会投入太多资源,加上该网站为 151 个派出所、街道办等多个部门提供服务,某个时刻可能会呈现多个部门同时大量处理事务的状况,再加上你的爬虫程序,服务器撑不住很失常,案例中程序设置了凌晨 1 时至 2 时进行采集是比拟正确的做法,政府网站升高频率、错峰采集,肯定水平上也能防止爬宕机的状况。
- 对需要的危险评估及把控有余:CTO 自述中表明意识到这么操作会毁坏深圳市公安局居住证服务平台,然而为了不便当前的查问,就焦急着去做了,没有思考那么多的结果。也就是在明晓得可能存在危险的状况下,还未对该需要进行严格的监管,正因为抱有侥幸心理,为当前埋下了“定时炸弹”。正确的做法该当是做粗疏谨严的布局,钻研该需要的合理性,再思考要不要下发施行,而程序员也没对下发需要做可行性剖析,拿着需要和根底代码就去做了,还未进行监控治理,这揭示咱们立项时多问一句“咱们这么做有没有危险”没害处,特地是爬虫工程师们要多对需要进行理性分析,隐患大的需要该回绝就回绝,毕竟有些事看起来是“个体”的决策最初往往并不是个体买单,如果公司因而威逼解雇你,那连忙拿钱跑路,这种公司迟早得出问题!
- 舒适揭示:以上案例揭示咱们,在工作中碰到相似状况后,倡议在事先征询公司法务或者专业人士,不要想当然,不要自以为是。谨记一点,公司是老板的,自在是本人的,法律是不容触犯的!
情谊提醒之公司解雇员工弥补规范:
《劳动合同法》第 47 条规定:
1、经济弥补按劳动者在本单位工作的年限每满一年领取一个月工资的规范向劳动者领取;
2、六个月以上不满一年的,按一年计算;
3、不满六个月的,向劳动者领取半个月工资的经济弥补,月工资是指劳动者在劳动合同解除或者终止前十二个月的平均工资。
合同未到期,员工无过错情景下,单位提出与员工解除劳动合同的非自行到职的状况下,可索要 N+1 月工资的弥补:N 为退职年限,有余一年但超过半年,则按一年算;1 为解雇员工须要提前一个月告诉,否则须要弥补 1 个月工资作为代告诉金。