最近程序员频繁被抓,如何避免面向监狱编程!?

最近,有关程序员因为参与某些项目开发导致被起诉,甚至被判刑的事件发生的比较多:

某程序员因为接了个外包,帮别人写了个软件,结果这个软件被用于赌博导致被抓。

某公司利用爬虫抓取用户信息,最后被发现,导致该公司的程序员被抓。

某P2P公司暴雷,老板跑路,程序员被抓。

中科大博士卖“外挂”非法牟利300多万,被警方逮捕。

那么,作为一个程序员,如何避免这些坑呢?怎样尽可能的保护自己呢?

本文就从爬虫、赌博网站、P2P以及外挂等几个方向来介绍下,作为程序员如何避免面向监狱编程!

由于作者并非专业的法律工作从业者,文中法规部分的引用如有偏差,请指正。希望通过本文可以帮助广大程序员们了解一下有哪些自己的人身自由息息相关的坑。

一、爬虫

爬虫,是互联网时代一项普遍运用的网络信息搜集技术。该项技术最早应用于搜索引擎领域,是搜索引擎获取数据来源的支撑性技术之一。

随着数据资源的爆炸式增长,网络爬虫的应用场景和商业模式变得更加广泛和多样,较为常见的有新闻平台的内容汇聚和生成、电子商务平台的价格对比功能、基于气象数据的天气预报应用等等。

网络爬虫技术为数据收集者提供了极大的便利,也给专业网络爬虫公司带来巨大的收益。所以,很多公司都会有爬虫部门,或者负责开发爬虫的团队,在招聘网站上,也随处可见关于"爬虫工程师"的招聘贴。

?

关于这个问题,一直都是比较难定性的,因为爬虫本身只是个工具,就和菜刀一样,所以很多人都拿"菜刀无罪论"、"技术无罪论"来为爬虫辩护。

从网络爬虫的相关案例来看,爬虫的开发及使用者通常有很多理由为自己辩护:

“我爬取的都是这个网站的公开数据,搜索引擎不也是这么做的吗?”

“这与搜索引擎行为类似,只是使用了自动脚本,这是合理使用行为。”

“我已经遵守了它们的robots协议、该网站没有robots协议”

“这些数据我只是个人研究使用,并没有商业目的。”。

那么,爬虫到底犯不犯法?

目前,关于网络爬虫相关的约束,主要是2019年05月28日国家网信办发布的《数据安全管理办法(征求意见稿)》。这份文件主要包含了数据收集、数据处理使用以及数据安全监督管理三个章节。

?基本可以确定的是,如果爬虫使用不当,那么爬虫的开发者是有可能触犯法律的,而根据情况不同,获得的刑罚也有可能有差异。

要看开发和使用爬虫是否犯法,需要从爬什么数据、如何爬取数据以及爬到数据之后怎么用三个方面来判断。接下来就简单分析一下:

爬什么数据犯法?

1、属于著作权法保护的作品

因为有些网站发表的内容,如文章、评论等都是有著作权的,如果只是单纯的通过浏览器查看是不会触犯法律的。

但是,对于有著作权的作品,如果未经著作权人许可,以盈利为目的,对其作品进行复制是会触犯法律的。

根据《中华人民共和国著作权法》第46条:有下列侵权行为的,应当根据情况,承担停止侵害、消除影响、公开赔礼道歉、赔偿损失等民事责任,并可以由著作权行政管理部门给予没收非法所得、罚款等行政处罚: (一)剽窃、抄袭他人作品的; (二)未经著作权人许可,以营利为目的,复制发行其作品的; (三)出版他人享有专有出版权的图书的; (四)未经表演者许可,对其表演制作录音录像出版的; (五)未经录音录像制作者许可,复制发行其制作的录音录像的; (六)未经广播电台、电视台许可,复制发行其制作的广播、电视节目的; (七)制作、出售假冒他人署名的美术作品的。

如果是使用爬虫技术手段爬取数据之后将其保存下来或者传播,并且进行盈利,这种都是属于犯罪的。

2、用户的个人信息或者个人隐私

个人用户的个人信息,即使是用户自己放到一些网站上进行公开或者部分公开,如微博、微信等,不代表这些数据就可以被其他人随便获取!

根据《民法总则》第111条:任何组织和个人需要获取他人个人信息的,应当依法取得并确保信息安全。不得非法收集、使用、加工、传输他人个人信息;

根据《网络安全法》第44条:任何个人和组织不得窃取或者以其他非法方式获取个人信息。因此,如果爬虫在未经用户同意的情况下大量抓取用户的个人信息,则有可能构成非法收集个人信息的违法行为。

所以,如果爬取的数据涉及到个人信息,都是违法的!

还有些爬虫企图绕过权限校验等,爬取用户未公开的信息,如个人私密相册照片等,都是属于侵犯用户的个人隐私的,这种也是违法的。

3、反不正当竞争保护的数据

目前有很多网站中的数据系由用户生成,且该等数据和内容系原告网站的主要竞争力来源。如大众点评上面的店铺评价、评论等信息,携程网上面的关于酒店的评价评论等信息等。

根据《反不正当竞争法》第2条:经营者在市场交易中,应当遵循自愿、平等、公平、诚实信用的原则,遵守公认的商业道德。

那么,未经允许,爬去其他网站的核心数据,很明显并没有遵守自愿、平等、公平、诚实信用的原则。

在大众点评诉百度不正当竞争案件、以及新浪微博诉脉脉不正当竞争等案件中,法院都认定被告未经许可抓取、使用原告网站中的数据的行为,违反了诚实信用原则及公认的道德,损害了互联网的市场竞争秩序,损害了原告的竞争优势,从而构成不正当竞争。

因此,如果抓取大众点评、微博、豆瓣电影、知乎等UGC模式的网站上用户发布的信息,并在自己的产品或者服务中发布、使用该等信息,则有较大的风险构成不正当竞争。

怎么爬犯法?

如果是爬取公开的数据,通常不会被认为是侵权。Google、百度等搜索引擎都是这么爬取的。

那么,到底怎么爬数据是有可能触犯法律的呢,主要考虑是否涉及以下两种行为:

未遵守Robots协议

Robots协议是技术界为了解决爬取方和被爬取方之间通过计算机程序完成关于爬取的意愿沟通而产生的一种机制。

根据《互联网搜索引擎服务自律公约》第7条:机器人协议(robots协议)是指互联网站所有者使用robots.txt文件,向网络机器人(Web robots)给出网站指令的协议。具体而言,robots协议是网站所有者通过位于置于网站根目录下的文本文件robots.txt,提示网络机器人哪些网页不应被抓取,哪些网页可以抓取。

根据《互联网搜索引擎服务自律公约》第8条:互联网站所有者设置机器人协议应遵循公平、开放和促进信息自由流动的原则,限制搜索引擎抓取应有行业公认合理的正当理由,不利用机器人协议进行不正当竞争行为,积极营造鼓励创新、公平公正的良性竞争环境。

虽然《互联网搜索引擎服务自律公约》仅适用于中国互联网协会会员单位和自愿加入《中国互联网行业自律公约》的互联网从业单位,但在司法实践中,Robots协议已经被认定构成互联网行业搜索领域内工人的商业道德。

因此,无视网站设置的Robots协议而随意抓取网站内容的行为将涉嫌构成对《反不正当竞争法》的第2条的违反,即违反诚实信用原则和商业道德的不正当竞争行为。

绕过防护措施对数据的访问,强行突破反爬措施

由于爬虫的批量访问会给网站带来巨大的压力和负担,因此许多网站经营者会采取技术手段,以阻止爬虫批量获取自己网站信息。

所以,很多爬虫工具为了爬取数据,会想办法通过各种手段绕过防护措施,但是,这种行为也是会触犯法律的。

根据《刑法》第285条第二款:违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。

企图通过技术手段,绕过网站的反爬机制,都属于《刑法》中规定的"侵入",都是要被处罚的。

怎么用犯法?

很多公司开发的爬虫遵守了Robots协议,也没有爬取不该爬取的数据,难道这样获取到的数据就可以随便使用了吗?其实也不是,如果使用不当,也会触犯法律的。

比如通过爬虫抓取到的数据进行盈利、损害他人利益、造假、诽谤等都是可能触犯法律的。

此外,未经被收集者同意,即使是将合法收集的公民个人信息向他人提供的,也属于刑法第二百五十三条之一规定的“提供公民个人信息”,可能构成犯罪。

小结

在使用爬虫的过程中,爬取的数据类型、爬取数据的方式以及爬取之后的使用都是可能触犯法律的。

其中,使用爬虫得到的数据进行盈利、损害他人利益、不正当竞争等一般都是针对经营者的。

但是对于程序员来说,如果你的老板让你开发的爬虫,是用来爬取用户的个人信息或者个人隐私,并且该爬虫未遵循Robots协议、并且有意的躲避反爬机制就可能触犯到法律了。

三、赌博、S情网站

除了爬虫以外,最近很多关于程序员参与赌博网站的开发,最终被判刑的新闻,那么,如果参与赌博、S情等网站的开发,是不是一定触犯法律呢?

根据《最高人民法院、最高人民检察院、公安部关于办理网络赌博犯罪案件适用法律若干问题的意见》中关于网上开设赌场共同犯罪的认定和处罚规定:

明知是赌博网站,而为其提供下列服务或者帮助的,属于开设赌场罪的共同犯罪,依照刑法第三百零三条第二款的规定处罚:

(一)为赌博网站提供互联网接入、服务器托管、网络存储空间、通讯传输通道、投放广告、发展会员、软件开发、技术支持等服务,收取服务费数额在2万元以上的;

(二)为赌博网站提供资金支付结算服务,收取服务费数额在1万元以上或者帮助收取赌资20万元以上的;

(三)为10个以上赌博网站投放与网址、赔率等信息有关的广告或者为赌博网站投放广告累计100条以上的。

也就是说,如果你作为程序员,你在帮公司开发赌博网站,只要公司付给你的费用超过了2万元以上,那么你就和开设赌场的人是共同犯罪。

?

除了赌博网站,所有和黄赌毒有关的软件开发都不要参与,明知道是违法或者可能违法的行为,并为其提供技术支持,都是有可能触犯法律的。快播不就是个很好的例子吗。

所以,程序员一定要远离赌博、色情等网站,并拒绝为他们提供技术服务。

P2P

最近,P2P频繁暴雷,因为是网络借贷,所以这些暴雷的公司必然是有程序员的,所以,对于这种P2P公司如果涉及违法,那么参与开发的程序员到底算不算从犯?

前段时间,有脉脉用户发帖称"P2P公司暴雷,前端程序员被抓":

?

一时间,引起了广泛的讨论,有人认为程序员为违法提供了帮助,属于从犯,有人认为程序员可能不知道公司违法,是"不知者不罪"

那么,关于这个情况,知乎上有用户给过专业的解答:

『如果程序员只是单纯的负责开发,只拿合理的死工资,本人对于公司的合法性和P2P的政策不了解,找工作也是通过正规渠道的。』那么就不算从犯。

但是,如果还负责了公司的其他事情,或者没有只拿死工资,找工作也不是正规渠道的,那就另当别论了。重要的是,如果自己明知道公司是非法的,那么肯定就涉及犯罪了。

所以,对于这种做互联网金融的企业的程序员,需要多多了解一下自己公司当前的主营业务是否合法。是否涉及到非法集资、传销等违法行为。

外挂

外挂是指利用电脑技术针对一个或多个网络游戏,通过改变软件的部分程序制作而成的作弊程序。制作贩卖游戏外挂也是会受到我国司法机关打击的行为。

根据开发者制作的不同的外挂类型,以及使用方式等,根据以往案例,可能触犯非法经营罪、破坏计算机信息系统罪以及侵犯著作权罪等。

非法经营罪

外挂等违法行为的出现,严重侵害了游戏开发者、运营商以及正常消费者的合法权益,扰乱了互联网游戏经营的正常秩序,破坏了网络游戏产业的良性发展,违反国家规定,情节严重,应按刑法第225条第四项的规定处罚。

根据《刑法》第225条:违反国家规定,有下列非法经营行为之一,扰乱市场秩序,情节严重的,处五年以下有期徒刑或者拘役,并处或者单处违法所得一倍以上五倍以下罚金;情节特别严重的,处五年以上有期徒刑,并处违法所得一倍以上五倍以下罚金或者没收财产:

一)未经许可经营法律、行政法规规定的专营、专卖物品或者其他限制买卖的物品的;

二)买卖进出口许可证、进出口原产地证明以及其他法律、行政法规规定的经营许可证或者批准文件的;

三)未经国家有关主管部门批准非法经营证券、期货、保险业务的,或者非法从事资金支付结算业务的;

四)其他严重扰乱市场秩序的非法经营行为。

破坏计算机信息系统罪

有些外挂会修改网络游戏运行数据、干扰网络游戏服务端计算机信息系统功能、危害计算机信息系统安全的行为,符合破坏计算机信息系统罪的犯罪构成要件。

根据《刑法》第286条::违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。

侵犯著作权罪

还有些开发者通过非法手段,获取他人享有著作权的计算机软件中的核心程序文件,制作外挂后用以牟利。这种外挂程序虽然与官方客户端程序并不完全一致,但主体结构、功能构成实质性相同,故被告人的行为构成非法复制计算机软件的行为,应以侵犯著作权罪定罪处罚。

根据《刑法》第217条:以营利为目的,有下列侵犯著作权情形之一,违法所得数额较大或者有其他严重情节的,处三年以下有期徒刑或者拘役,并处或者单处罚金;违法所得数额巨大或者具有其他特别严重情节的,处三年以上七年以下有期徒刑,并处罚金:

1、未经著作权人许可,复制发行其文字作品、音乐、电影、电视、录像作品、计算机软件及其他作品 的;

2、出版他人享有专有出版权的图书的;

3、未经录音录像制作者许可,复制发行其制作的录音录像的;

4、制作、出售假冒他人署名的美术作品的。

根据《刑法》第218条:以营利为目的,销售明知是本法第二百一十七条规定的侵权复制品,违法所得数额巨大的,处三年以下有期徒刑或者拘役,并处或者单处罚金。

总结

对于广大爬虫工程师,如果你开发的爬虫涉及个人信息及隐私,爬虫未遵守Robots协议,爬虫企图通过技术手段绕过反爬机制等,都是触犯了法律的。

对于那些做爬虫的企业,如果涉及到爬取受著作权保护的内容,涉及到公司商业机密等内容,并且用于盈利或者不正当竞争等,也是国家法律所不允许的。

还有就是,"明知故犯"的事情不要做,也不要抱有任何侥幸心理,一定要远离赌博、?S情网站,并拒绝为他们提供任何技术支持。

如果公司的主营业务室P2P,并且自己参与了P2P的开发,那么一定要了解清楚自己公司所做的业务是否合规,如果发现不合规,一定要趁早离职。并且不要参与除?纯开发以外的其他事宜。

不要参与‘外挂软件‘的开发。学会保护自己!

如果你是文中介绍过的相关行业中的程序员,那么希望大家第一时间找律师咨询一下,自己是否有触及到法律,以及如何避免和脱身等。

本文只是简单介绍了几种常见的容易被坑的情况,还有很多情况正在发生和即将发生,所以,希望广大程序员们,不要只顾埋头写代码,还要经常抬头看看,审视下自己所做的产品、所在的公司以及所从事的行业。

作为程序员,我们手里的技术就是工具,那么,我们有责任也有义务来保证我们的工具是用在正途的。

最后,技术无罪、人会犯错、知错能改、善莫大焉。

参考资料:

https://www.kwm.com/zh/cn/knowledge/insights/legal-issues-concerning-web-crawlers-20180525

https://zhuanlan.zhihu.com/p/66997586

https://www.zhihu.com/question/37767673

https://new.qq.com/omn/20171214/20171214A0M93Z.html

《极客时间——白话法律42讲》:https://time.geekbang.org/column/article/42208

原文地址:https://www.cnblogs.com/hollischuang/p/11750625.html

时间: 2024-11-09 02:34:25

最近程序员频繁被抓,如何避免面向监狱编程!?的相关文章

程序员修炼指南——引导你成为真正的编程高手

@程序员修炼指南——引导你成为真正的编程高手 评,这是一个指导方向,不一定是你自己的目标,但如果这些你都做到了,那还有哪些是不能做到的? 前言 你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发) 建议: 不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用. 回顾一下历史,看看历史上时间线上技术的发展,你才能

黑马程序员_JavaSE基础知识总结一:Java编程前奏

------ android培训.java培训.期待与您交流! ---------- 一.计算机概述 1.软硬件与语言 根据冯·诺依曼体系结构,计算机可以划分为五个部分:存储器.运算器.控制器.输入设备.输出设备.我们可以更加简单地把计算机划分为软硬件两个部分,硬件是指计算机系统中由电子,机械和光电元件等组成的各种物理装置,这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础,常见如显示器.扫描仪.键盘等:软件是一系列按照特定顺序组织的计算机数据和指令的集合,又可分为系统软件

一位39岁程序员的困惑:知道得越多编程越慢怎么办?

Zilk1988 年 14 岁时就开始编程,此后尝试过几种职业,最终还是在 1997 年决定成为职业程序员(又称码农),现在已经 39 岁,对此选择依然无怨无悔. 但是后来他发现一个问题,自己的经验越丰富,完成项目或任务的时间反而越长.因为他见过了太多可能会出问题的情况而对选择踌躇.比方说,假设他刚想 到要写一段写入文件的代码时,电光火石之间他就已经开始担心起下面的一系列的问题:权限.锁定.并发.原子操作.迂回 / 框架,不同的文件系统.目录中的文件数.可预测的临时文件名.PRNG(伪随机数生成

程序员自我修炼——引领你成为真正的编程大神

建议: 不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用. 回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样. 一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节. 一定要学会思考,思考为什么要这样,而不是那样.还要举一反三地思考. 注:你也许会很奇怪为什么下面的东西很偏Unix/Linux,这是因为我觉得Windows下的编程可能会在未来很没有前途,原因如下: 现在的用户界面几乎被两个东西主宰了,1)Web

哪一种是程序员最不喜欢的编程语言?初学编程者注意了!

近日,全球著名的 IT 网站 Stack Overflow 根据数百万开发者项目标签的使用频率,发布了一份编程语言的调查报告,试图找出最不受欢迎的编程语言.没想到开发者最想规避的编程语言中,PHP.Objective-C 和 Ruby 等语言纷纷上榜. 下图看出,讨厌的编程语言人数最多的是Perl,Delphi,以及VBA,而PHP,objective-c,Coffeescript以及Ruby紧追其后.而r是喜欢人数最多的编程语言. 其实可以看出,发展迅速稳定的语言喜欢的人更多一些,如r,Pyt

简明python教程 --C++程序员的视角(九):函数式编程、特殊类方法、测试及其他

函数式编程 Lambda exec,eval和assert语句,repr函数 lambda语句 用来创建简短的单行匿名函数 print_assign = lambda name, value: name + '=' + str(value)等同于def print_assign(name, value): return name + '=' + str(value)   lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回.注意,即便是print语句也不能用在

程序员你为何喜欢在深夜写代码编程?

如果你问我为什么喜欢在深夜写代码?我会说安静,效率高,没人打扰. 是的写代码的过程最害怕别人打扰自己.所以有人宁愿晚上熬夜写代码. 往往而言确实 夜晚比白天的效率高很多. 为何如此? 其实大脑疲倦的时候更能集中精力去干一件事.因为屏幕的光亮,时间慢慢的流逝 写代码虽好,可不好经常熬夜哦

黑马程序员 01-面向对象思想和面向过程思想

———Java培训.Android培训.iOS培训..Net培训.期待与您交流! ——— OC是面向对象的,C是面向过程的.二者只是解决问题的两种不同的思想. 1.面向对象和面向过程的区别 (1)以用电脑看电影为例 <1>面向过程思想(关注的是具体的步骤) 这里我们是执行者,我们需要关注具体每个步骤怎么来实现. 1)开电脑(步骤1) 2)播放电影(步骤2) 3)关闭电脑(步骤3) <2>面向对象思想(关注的是对象) 这里我们是指挥者,具体行为由电脑来执行,我们不必关注具体是怎么执行

一个程序员的自我修养

在网上看到一篇程序员的自我修养,深以为然,不禁摘录一些,勉励自己 一个好的开发人员,应该能够全面.高效.严谨的去处理任何软件程序和业务问题,成为一个好的开发,是一个很有意思的话题,不过无论这个话题如何开展,基础两个字必不可少,虽然代码量是衡量开发能力的重要指标,但仅能够熟练的进行代码编写是不够的,更要能深刻的理解技术原理和业务逻辑,扎实的个人基础和技术基础往往会促进代码的编写,更游刃有余的解决问题. 下面说的一些基础,可能绝大部分开发人员都不会在意甚至忽略,但恰恰这些才是开发大厦的基石. 1.科