..::孙 禹:强行爬取公开数据构成犯罪吗

中国社会科学院国际法研究所是中国国际法学的研究重镇。她的前身是中国社会科学院国际法研究中心、中国社会科学院法学研究所国际法研究室和最早时的中国社会科学院法学研究所国际法组。

主持所务工作

一、问题的提出

司法机关的定性得到很多学者的支持。有学者评价,晟品案中突破反爬虫措施的行为侵害了计算机信息系统安全法益,对其进行惩罚不仅具有必要性,也具有可行性。有学者认为:“强行突破反爬技术,侵入‘国家事务、国防建设、尖端科学技术领域’之外的计算机信息系统,并采用爬虫技术获取系统内的数据,其行为根据我国《刑法》第285条第2款的规定,构成非法获取计算机信息系统数据罪”。对于突破反爬虫措施行为的性质,存在两种相近的观点,都认为突破反爬虫措施具有刑事违法性:一是认为“晟品公司案中法官突破性地将‘反爬虫’机制认定为与用户身份信息认证机制同态的计算机信息系统安全措施,并将常见的对抗‘反爬虫’措施的技术行为认定为‘侵入’计算机信息系统行为,这实际上等于创设数据流转领域新的规则,为规范数据流转行为起到了一定的积极意义”。二是认为反爬虫措施与身份验证机制同属于计算机技术屏障,网络爬虫规避或者绕开技术屏障时就构成刑法意义上的侵入计算机信息系统。两种观点的区别在于:前者认为将“反爬虫规避”解释为“侵入”是一种解释上的创新,后者则认为反爬虫规避本身就是典型的侵入行为。

虽然司法实践以及许多刑法学者认为突破反爬虫措施采集数据构成非法获取计算机信息系统数据罪,但是仍然存在一些值得注意的不同意见。有技术人员认为晟品案中的修改UA、修改Deviceid、绕开网站访问频率限制等手段本是编写爬虫程序的基本设置,但反而成了获罪的依据。同时,专注互联网和爬虫领域的律师认为,晟品案的合议庭没有准确理解反爬虫措施的性质,反爬虫措施并不属于身份校验机制,而且突破反爬机制也不会获得系统权限,所以更不会构成非法获取计算机信息系统数据罪。此外,也有学者指出:“反爬措施在技术层面上也并不具有排除特定主体访问计算机信息系统的效果,而只是针对某种访问进行了限制。在这种情况下,将反爬措施与其他传统意义上的安全措施相提并论,恐与立法者原意不符”。

当面对新的技术问题时,法学定性变得尤为艰难。一方面是因为技术行为具有独特的复杂性,法学从业者在缺乏专业知识的情况下无法充分理解行为的性质;另一方面是由于刑法规范无法及时对新的技术行为作出回应,不能提供明确、科学的判断标准。国内外的裁判经验表明,司法机关对于具有风险的新兴技术往往倾向于入罪而非出罪,然后再逐渐调整、细化评价标准并对个别行为予以保护。这种滞后的处理不仅会给互联网企业毁灭性的打击,而且会导致具有创新意义的技术被遏制,严重阻碍网络经济的发展。所以,针对强行爬取公开数据的定性问题,本文将在剖析爬虫与反爬虫技术原理、明确非法获取计算机信息系统数据罪适用标准的基础上,进行分析判断。

二、被忽视的技术细节——网络爬虫与反爬虫的技术博弈

在非法获取计算机信息系统数据罪的框架下,强行爬取公开数据行为的刑事违法性争议在于如何认定反爬虫规避措施的性质。易言之,其争议在于规避反爬虫措施的技术手段是否构成我国《刑法》第285条规定的“侵入”或者“采用其他技术手段”。在此框架下,网络爬虫技术并不具有其他的违法性连接点。然而,一些学者却认为网络爬虫具有“窃取”数据或者信息的技术特征。这实际上是对爬虫技术的误解。如果深入分析网络爬虫的工作原理,就可以发现“窃取”数据或信息的功能超出了其技术范畴。

(一)网络爬虫的工作原理

网络爬虫是可以向网络服务器请求数据的自动化程序,其核心功能在于数据采集。在技术原理方面,网络爬虫与浏览器软件并无本质区别,两者都是依照信息传输机制向服务器请求数据,网络爬虫所采集的数据也可以通过浏览器来访问。相反,如果某些内容无法通过浏览器访问(例如密码保护内容),在相同条件下也无法通过爬虫获取。

以使用浏览器为例,当访问特定网站内容(URL)时,经历了浏览器向网页服务器发送请求,网页服务器根据请求向浏览器返回响应数据的过程,其间许多软件和硬件在各自岗位上相互配合完成了一系列工作。具体来看,网络控制软件(TCP/IP)将浏览器的请求信息打包并补充目的地等控制信息后转交给网卡(负责网络通信的硬件),网卡则进一步将信息包转换为电信号发送到网络中。当网络包到达网页服务器时会被还原为原始的请求信息。最后,网页服务器根据接收到的请求向客户端返回响应数据,浏览器解析接收到的服务器数据并以用户可以识别的方式显示在浏览器页面中。而利用网络爬虫采集数据时,则是由编写好的程序直接向网页服务器请求数据,然后再由爬虫程序接收服务器返回的数据,并进一步解析提取重要信息。由此可见,网络爬虫就像是一个定制版的浏览器,不同之处在于网络爬虫能够大规模、有针对性地获取数据。

(二)常见的反爬虫措施及规避方法

网站防止网络爬虫采集数据的基本前提是区分普通用户的访问和爬虫程序的数据请求,从而在保证用户可以正常访问的情况下阻止爬虫程序获取数据或者增加其获取数据的难度。对此,网络爬虫的应对方案就是使自己的请求更像正常用户,进而顺利获得服务器的响应。目前常见的反爬虫策略包括请求头设置、登陆限制、流量限制、AJAX动态加载数据、Cookie限制、验证码限制等。由于当前几起刑事案件所涉及的反爬虫措施仅涉及请求头限制、流量限制以及验证码限制,而且反爬虫措施的性质比较类似(拒绝来自爬虫的请求或者增加爬虫获取数据的难度),故本文对此不做过多介绍。

“请求头设置”是根据向网络服务器发送的请求中所包含的属性信息来判断该请求是否来自爬虫程序并阻止请求的反爬虫策略。使用浏览器访问网站内容时,浏览器会在请求信息中附加用户使用浏览器的名称及版本信息,以便服务器返回的数据可以在浏览器中正常显示。该信息的参数名称为User-agent,以使用windows系统的IE浏览器为例,其Use-agent信息为“Mozilla/5.0”,而网络爬虫程序默认的User-agent信息为编程软件的名称和版本(例如“Python-urllib/3.4”)。网站管理员凭此就可以区分来自普通用户和网络爬虫的请求。修改请求头并无技术上的难度,编写爬虫时可以直接定义请求头的属性,这种操作类似发布微博时修改使用手机的型号。

三、需明确的刑法规定——如何理解和认定“侵入计算机信息系统”

(一)非法侵入的定义

(二)非法侵入的判断标准

四、网络爬虫罪与非罪的初判——规避反爬措施是否突破或者避开计算机信息安全保护措施

User-agent是关于浏览器版本的参数,其不涉及身份认证,也无法作为安全保护措施。就网络传输原理来看,服务器并不会因为用户没有使用浏览器而拒绝其访问,浏览器只是为了方便用户使用而开发的软件且互联网初期用户都是通过直接向服务器发送指令来请求数据。此外,出于系统安全的考虑,信息系统所有者也不会采用User-agent参数作为安全保护措施,因为该措施完全不具备安全防范功能——任何用户都可以通过浏览器访问数据。实际上,利用User-agent参数限制网络爬虫获取数据就像是商场安保人员根据着装限制外卖员入内。着装本身的功能并不在于表征行为人是否具有进入商场购物的权利,即便是外卖员通过换装的方式进入商场,也不应将这种行为等同于秘密潜入商场,两者具有质的差异。

验证码本质上是一种能力测试而非身份认证,其作用是排除由自动性程序发起的访问,而不在于判断用户是否具有访问权限。换言之,验证码的作用在于验证用户是“人类”还是“机器人(即自动性程序)”。从反爬措施的角度来看,这种验证的目的在于避免用户通过利用程序大量获取信息。在形式上,验证码可以发挥类似于访问控制的功能——如阻止爬虫的数据请求,但其与访问控制功能的侧重点有所不同。如果说游乐场的检票措施属于访问控制机制,那么安检措施就类似验证码的限制性机制,两者效果相似但功能不同。就收费游乐场而言,其对社会公众呈封闭状态,只有购票者有权利进入,所以检票措施才是从根本上处理谁有权利进入的访问控制机制。而安检措施解决的问题是游客应以什么样的状态进入游乐场,如禁止携带危险物品、食物等要求。即便游客私下携带违禁物品进入游乐场,也不应将这种行为视为逃票。同理,验证码并不决定谁可以访问信息系统,即便用户不能使用自动程序,也可以采用人工操作的方式进行访问。

五、网络爬虫罪与非罪的追问——规避反爬虫措施是否属于“采用其他技术手段”

如果说规避反爬虫措施的行为并不构成刑法意义上的“侵入”,那么是否可以将其评价为非法获取计算机信息系统数据罪中的“采用其他技术手段”?对此需要考虑两方面的基本情况。首先,“采用其他技术手段”是一个较为模糊的开放性要件,无法为构成要件符合性判断提供一个明确的标准,如何判断何为与侵入行为在严重程度和危害性质上相近的其他技术手段较为困难。所以,此时问题的实质更多是价值判断而非构成要件符合性判断,即是否应该对规避反爬虫措施的行为进行处罚。易言之,正是由于标准的模糊性,才需要引入其他的价值标准,以尽可能保证判断结论的合理性。其次,规避反爬虫措施强行爬取数据是处于灰色地带的风险行为,被爬取的数据既能用于开发新的网络应用和商业模式,也可能被用于违法犯罪活动。故在判断规避反爬虫措施是否属于“采用其他技术手段”时,不仅要根据刑法一般原理进行构成要件符合性的判断,更需要考虑多方面的权益平衡,综合性地分析数据爬取行为的正当性。可以说,数据爬取行为所包含的积极利益,也会在一定程度上影响其行为本身的正当性。

结语

而且,将利用网络爬虫强行爬取公开数据的行为排除在上述犯罪之外,并不意味着完全放弃对网络爬虫的规制。不可否认,目前的确存在滥用爬虫技术获取数据的情况,这对数据保护和个人隐私产生了很大威胁。但面对新型技术所带来的风险,刑法的解释和适用要坚守底线而不应过于激进。针对网络爬虫规制问题,仍然可以考虑从其他方面着手。第一,虽然无法给予反爬虫措施刑法上的支持,但是法律并不禁止网站所有者通过设置技术障碍来限制他人爬取信息,爬虫和反爬虫的对抗可以在技术层面持续。第二,如果收集网络中公开数据的行为是被允许的,那么可以将规制的重心转移到数据使用行为上,实际上很多案例也是对违法使用数据的行为进行处罚。第三,如果爬取数据的技术行为对计算机信息系统的正常运行产生了严重影响(如数据请求频率过高导致服务器崩溃),可以考虑通过破坏计算机信息系统罪来进行规制。第四,若确实有必要对收集某种公开数据的行为进行处罚,那么则需要进行立法上的完善,明确规定禁止收集的数据类型或者采用的技术方法,避免毫无区分地将所有爬取公开数据的行为置于刑罚的危险之中。

THE END
1.爬虫是什么爬虫是指网络爬虫,一种按照设定好的程序抓取网络信息的程序或者脚本。网络爬虫又被称为网页机器人或者网络蜘蛛,是一种按照开发者设定好的既定程序对万维网上的信息进行自动抓取的程序或者脚本,与之类似的还有自动https://edu.iask.sina.com.cn/jy/hn4mu1dNVb.html
2.劲旅网的微博【#民宿回应5999元一晚房间满是爬虫#:暴雨所致,已赔礼】#5999元一晚民宿满是爬虫蜘蛛# 据潇湘晨报:“住了个5999元一晚的民宿,半夜屋里全是虫子、蜘蛛……甚至有拇指大小的爬来爬去。”7月27日,有女子发布视频称,在江西望仙谷,入住悬崖民宿,结果“踩了个大雷”。此事引发关注。视频显示,床单、 ?...https://www.weibo.com/ctcnn?refer_flag=1005055013_
1.不知道爬虫是什么?那就快来看看这篇吧,带你彻底了解Python爬虫1.爬虫是什么 网络爬虫(web crawler 简称爬虫)就是按照一定规则从互联网上抓取信息的程序,既然是程序那和正常用户访问页面有何区别?爬虫与用户正常访问信息的区别就在于:用户是缓慢、少量的获取信息,而爬虫是大量的获取信息。 这里还需要注意的是:爬虫并不是Python语言的专利,Java、Js、C、PHP、Shell、Ruby等等语言...https://blog.csdn.net/m0_59162248/article/details/123068354
2.什么是爬虫Python爬虫的原理是什么腾讯云开发者社区二、爬虫的基本流程: 用户获取网络数据的方式: 方式1:浏览器提交请求--->下载网页代码--->解析成页面 方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中 爬虫要做的就是方式2; 1、发起请求 使用http库向目标站点发起请求,即发送一个Request ...https://cloud.tencent.com/developer/article/1934685
3.爬虫系列1什么是爬虫,玩爬虫的正确姿势有哪些事实上,爬虫在法律中是不被禁止的。但是如果如果利用爬虫获取数据确实是有一定的违法风险。这就好比我们生活中使用的刀,削水果切菜这都没事,但是如果用刀故意伤人这性质就不一样。 我们该如何规避爬虫的风险呢? 1、遵守Robots协议。 Robots协议又称为君子协议,就好比过马路的时候,遇到红灯,我们都知道会停止。但是你...https://blog.51cto.com/u_15081058/2594658
4.Python爬虫(一)什么是爬虫?什么是爬虫 百度词条上对于爬虫的定义是:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 说的简单一些,爬虫就是模拟客户端(浏览器)发送网络请求,获取网络响...https://www.jianshu.com/p/cd6977510dc8
5.肛门口痒像有爬虫是什么原因患者肛门口痒像有爬虫是肛周湿疹的原因,也有可能是肠道寄生虫的原因引起的,患者需要遵医嘱服用药物进行治疗。1、肛周湿疹:肛周湿疹通常是由于不良生活习惯、遗传等因素导致的,患病后患者会出现肛门潮湿、疼痛等症状,部分患者还会出现肛门口痒像有爬虫的现象,患者可以https://www.miaoshou.net/article/WGoM5mDQ07E2PERV.html
6.数据采集复习题爬虫python代码(urllib,bs4库) 正则表达式基础 书p129规范化变换数据的三个计算。 传感器节点结构 如何运用传感器节点构造一个数据采集系统?(第二章作业) 6.常用的数据采集命令行:hadoop命令行 ** 第一章作业 ** 1.数据采集系统主要实现哪些基本功能? https://www.skycaiji.com/aigc/ai1303.html
7.Python实现考试自动答题的脚本分享python1)爬虫实现思路 一. 数据来源分析 --> 通过浏览器 开发者工具 抓包分析 1. 明确需求: - 明确采集的网站是什么 题目答案页面: https://tiba.jsyks.com/Post/2c15b.htm 2. 分析这两个数据怎么获取 数据来自于 --> 答案页面 第一题: https://tiba.jsyks.com/Post/2c15b.htm ...https://m.jb51.net/article/278199.htm
8.苏宇:网络爬虫的行政法规制这些机制从客户端或服务端采取不同策略进行反爬,主要可以分为以下几大类:(1)识别机制,即发现非人类操作行为的机制,主要是对网络请求的传输信息分析(Headers字段识别)和操作规律进行分析,致力于从爬虫活动的各种痕迹中识别出爬虫。其中,最常见就是验证码,验证码可以被认为是一种“区分人与计算机的全自动公共图灵测试...http://fzzfyjy.cupl.edu.cn/info/1035/13584.htm
9.非结构化数据提取技术在统计工作中的应用②网络爬虫的主要作用是获取互联网上的信息,大多数信息都可以通过HTTP协议检索,利用主页中的超文本链接遍历Web,通过URL实现从一个HTML文档爬行到另一个HTML文档的目的。图1是一个简单的网络爬虫结构图。 图1 ?网络爬虫结构图 ③URL是Uniform Resource Locator统一资源定位器的缩写,它是WWW中统一资源唯一的定位标志...https://tjj.changzhi.gov.cn/sjfx/202207/t20220704_2588893.html