当前位置: 首页 > 后端技术 > Python

【K哥爬虫法】程序员183兼爬官网,被判3年有期徒刑?

时间:2023-03-26 16:30:12 Python

目前,我国还没有出台专门针对网络爬虫技术的法律规定,但在司法实践中,相关判决屡见不鲜。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...关于爬虫程序日志记录和监控告警重要性的反思总结:本案中目标网站宕机一次arrest,此时请求成功率、数据量、目标网站服务器响应肯定会出现异常。正确的做法是要有一定的告警策略。通知程序员,尤其是政府网站,本案的程序明显不具备这些功能,导致程序员未能及时发现问题并处理。要知道对方运维人员这次并没有成功定位到IP,完全可以及时处理,避免成为“爬虫监狱玩家”。如果给你机会,把握不住,警察找上门来,就知道酿成大祸了。到那时,为时已晚。爬虫代码的健壮性:根据本案例程序员的说法,目标网站更新了验证码登录功能,但是程序没有对这种情况进行处理,也没有及时更新,导致死循环该方案,导致短期内有大量请求,可见代码健壮性的重要性。编写程序时,需要考虑可能出现的情况。如果检测到接口异常,无法获取到正确的数据,重试是正常的,但是在任何情况下都不能重试,如果出现死循环也不能一直重试。应该有合理的规则和合理的重试次数。如果重试次数超过设定次数,则应警告并停止程序运行。有些程序员喜欢直接使用tryexcept语句,直接捕获所有异常,然后在except中直接重试。正确的做法是对不同可能的异常进行不同的处理,如何处理值异常,如何处理连接异常等等。避免单一真实IP采集:本案例程序使用固定IP采集了约151万条数据信息。很明显目标网站没有屏蔽IP的策略,当然这并不意味着我们的程序不需要使用代理。代理也必须基于合法合规的要求。有些代理人还会协助你判断请求是否合规。完善的请求统计还可以帮助您判断是否存在异常情况。爬虫频率控制:本例中,当目标服务器宕机时,程序的并发量为每秒183次。这个并发度在普通爬虫程序中确实不是很高,但是需要注意的是目标网站是政府网站。尤其是地方政府专属的功能系统,这些网站不会在软硬件上投入太多资源,网站为151个派出所、街道办事处等部门提供服务,某个时刻可能有多个部门同时,在交易量很大的情况下,再加上你的爬虫程序,服务器出现故障是很正常的。在这种情况下,程序设置为从凌晨1点到凌晨2点收集。这是更正确的。政府网站降低频次,错峰采集。一定程度上也可以避免爬坡停机的情况。风险评估和需求控制不够:CTO在自我报告中表示,他意识到这样的操作会破坏深圳市公安局的居住证服务平台,但为了方便以后查询,他仓促做了没有考虑那么多后果。也就是说,在知道可能存在风险的情况下,没有严格监管需求。正是因为侥幸心理,才为未来埋下一颗“定时炸弹”。正确的做法应该是做周密严密的规划,研究需求的合理性,再考虑是否下发实施,但程序员并没有对交付需求做可行性分析,只是拿了需求和基本的代码就做了,还没有进行监控管理,这提醒我们在立项的时候要多问“这样做有没有风险”的问题?看似“集体”的决策,往往并不是集体支付。如果公司威胁要解雇你,那就拿着钱逃跑。这种公司迟早会出问题!温馨提示:以上案例提醒我们,在工作中遇到类似情况后,建议事前咨询公司法务或专业人士,切勿想当然或自以为是。记住,公司是老板的,自由是自己的,法律不能犯!友情提醒公司辞退职工的补偿标准:《劳动合同法》第四十七条规定:1、劳动者在本单位工作满一年,按一个月工资的标准支付经济补偿费;2.六个月以上不足一年的,按一年计算;3、不足六个月的,按劳动者半个月工资的标准给予经济补偿。薪水。合同未满,劳动者无过错,单位提出与劳动者解除劳动合同而不主动辞职的,劳动者可以要求赔偿N+1个月的工资:N为工作年限,不足一年但超过半年的,按一年计算;1.解雇员工必须提前一个月通知,否则必须补偿一个月的工资作为替代通知。