中国社会科学院国际法研究所是中国国际法学的研究重镇。她的前身是中国社会科学院国际法研究中心、中国社会科学院法学研究所国际法研究室和最早时的中国社会科学院法学研究所国际法组。
主持所务工作
小
中
大
一、问题的提出
司法机关的定性得到很多学者的支持。有学者评价,晟品案中突破反爬虫措施的行为侵害了计算机信息系统安全法益,对其进行惩罚不仅具有必要性,也具有可行性。有学者认为:“强行突破反爬技术,侵入‘国家事务、国防建设、尖端科学技术领域’之外的计算机信息系统,并采用爬虫技术获取系统内的数据,其行为根据我国《刑法》第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参数限制网络爬虫获取数据就像是商场安保人员根据着装限制外卖员入内。着装本身的功能并不在于表征行为人是否具有进入商场购物的权利,即便是外卖员通过换装的方式进入商场,也不应将这种行为等同于秘密潜入商场,两者具有质的差异。
验证码本质上是一种能力测试而非身份认证,其作用是排除由自动性程序发起的访问,而不在于判断用户是否具有访问权限。换言之,验证码的作用在于验证用户是“人类”还是“机器人(即自动性程序)”。从反爬措施的角度来看,这种验证的目的在于避免用户通过利用程序大量获取信息。在形式上,验证码可以发挥类似于访问控制的功能——如阻止爬虫的数据请求,但其与访问控制功能的侧重点有所不同。如果说游乐场的检票措施属于访问控制机制,那么安检措施就类似验证码的限制性机制,两者效果相似但功能不同。就收费游乐场而言,其对社会公众呈封闭状态,只有购票者有权利进入,所以检票措施才是从根本上处理谁有权利进入的访问控制机制。而安检措施解决的问题是游客应以什么样的状态进入游乐场,如禁止携带危险物品、食物等要求。即便游客私下携带违禁物品进入游乐场,也不应将这种行为视为逃票。同理,验证码并不决定谁可以访问信息系统,即便用户不能使用自动程序,也可以采用人工操作的方式进行访问。
五、网络爬虫罪与非罪的追问——规避反爬虫措施是否属于“采用其他技术手段”
如果说规避反爬虫措施的行为并不构成刑法意义上的“侵入”,那么是否可以将其评价为非法获取计算机信息系统数据罪中的“采用其他技术手段”?对此需要考虑两方面的基本情况。首先,“采用其他技术手段”是一个较为模糊的开放性要件,无法为构成要件符合性判断提供一个明确的标准,如何判断何为与侵入行为在严重程度和危害性质上相近的其他技术手段较为困难。所以,此时问题的实质更多是价值判断而非构成要件符合性判断,即是否应该对规避反爬虫措施的行为进行处罚。易言之,正是由于标准的模糊性,才需要引入其他的价值标准,以尽可能保证判断结论的合理性。其次,规避反爬虫措施强行爬取数据是处于灰色地带的风险行为,被爬取的数据既能用于开发新的网络应用和商业模式,也可能被用于违法犯罪活动。故在判断规避反爬虫措施是否属于“采用其他技术手段”时,不仅要根据刑法一般原理进行构成要件符合性的判断,更需要考虑多方面的权益平衡,综合性地分析数据爬取行为的正当性。可以说,数据爬取行为所包含的积极利益,也会在一定程度上影响其行为本身的正当性。
结语
而且,将利用网络爬虫强行爬取公开数据的行为排除在上述犯罪之外,并不意味着完全放弃对网络爬虫的规制。不可否认,目前的确存在滥用爬虫技术获取数据的情况,这对数据保护和个人隐私产生了很大威胁。但面对新型技术所带来的风险,刑法的解释和适用要坚守底线而不应过于激进。针对网络爬虫规制问题,仍然可以考虑从其他方面着手。第一,虽然无法给予反爬虫措施刑法上的支持,但是法律并不禁止网站所有者通过设置技术障碍来限制他人爬取信息,爬虫和反爬虫的对抗可以在技术层面持续。第二,如果收集网络中公开数据的行为是被允许的,那么可以将规制的重心转移到数据使用行为上,实际上很多案例也是对违法使用数据的行为进行处罚。第三,如果爬取数据的技术行为对计算机信息系统的正常运行产生了严重影响(如数据请求频率过高导致服务器崩溃),可以考虑通过破坏计算机信息系统罪来进行规制。第四,若确实有必要对收集某种公开数据的行为进行处罚,那么则需要进行立法上的完善,明确规定禁止收集的数据类型或者采用的技术方法,避免毫无区分地将所有爬取公开数据的行为置于刑罚的危险之中。