⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 zhihu.com/question/531724027 「网络」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

有人问:“假如团队里最牛的程序员,在关键系统里埋了个只有他能修的“雷”,这会不会踩到了法律的红线”?

最近在知乎上发现这么一个话题:假如一个高水平程序员故意留了一个只有他自己知道的漏洞,那么这种行为违法吗?其中有几个回答挺有意思的,分享给大家!

原话题地址:zhihu.com/question/531724027

回答1

不可能的,作为程序员,我有我的职业操守。

你给不给钱,我也必须给你我最好的服务,我不可能故意留一个漏洞的,这是我做人的操守。

回答2

什么故意?

什么高水平?

什么漏洞?

明明是我能力有限,水平不高,殚精竭虑认真负责,不小心留了个Bug而已,你给我说违法?太抬举我了啊。

回答3

漏洞的话,只要没有证据证明是故意的,那么就不违法。

因为实际上,要留漏洞根本不需要刻意做什么,只需要什么都不做,正常发挥就行。正常情况下,你不做特别的安全防范,那么默认你的程序就有漏洞。所以显然,只要他本人永远不亲自利用这个漏洞,而且也不承认,那么就没法证明他是故意的。毕竟,他本来也就没有故意留漏洞。

软件开发这种东西,有问题的程序测试通过了,那测试也要背锅。公司自己请的网络安全人员也有义务不断尝试攻击自己公司的服务以找到漏洞,这样才能真正解决问题。

一个公司,测试随便测,然后请的网安也根本不攻击自己的服务,最后被别人找到了漏洞,你觉得这是程序员违法?对不起,程序员还真不背这个锅。

回答4

其实在以前开发的时候遇到过这个问题,根据性质不同,可以判断是不是违法的。

当时是这么个情况。有一个企业那边给我们整需求,但是在需求完成后却一直拖欠费用,说需要让我们公司长期维护,如果出现bug会给我们支付更高的维护费,在维护过程中再把钱补上。本来这个需求已经很离谱了。但是这不是最离谱的,最离谱的是后来他们又找了家便宜的公司去帮他们维护需求,让他们这个项目可以正常运行,做出这么不人道的事情,他们没有受到惩罚,我的工资是实打实受到惩罚了。

但是我没办法啊,别人是甲方我也不好说什么,于是在新的需求来了以后,我修改了一些原来的程序里的Api,保证报错你找不出正确问题,甚至有可能会让你对整个公司的环境都做一些修改。然后修改了一些参数,也就是说整体程序看起来是没问题的。但是就是会在某个关键点“特意”出现一个让页面崩溃的错误。于是他们请人紧急修复,但是一直修不好。没办法,只能又找到我们公司,问我们怎么办。我说很简单,把尾款结了,我帮你把问题解决了。我保证你这个问题只有我可以解决。

终于,尾款到手,而那个“特意”崩溃的问题,也再也没出现过,然后那家公司所有的维护又重新找我们了,并且这次签了合同要比市场价高的价格作为维护费用来弥补之前他们的违约行为。

回答5

回答这个问题,需要了解以下两个问题。

①漏洞造成损害了吗?(有可能)

这是认定违法的前提,如果没有出现损害,法律没有必要去评价某种行为,在民事侵权中,损害表现为造成人身、财产伤害;在刑事犯罪中,损害表现为人身、财产伤害或者侵犯某些管理秩序。因此,这里的损害不一定指某种具体的损失,有时候也可能是其他法益的侵犯。

那么,就得看程序具体应用在哪里,以及最后造成了怎样的损害。

比如,程序用在航天领域中,最后造成重大事故,那不仅是违法行为,甚至可能构成犯罪。相对的,程序用在航天领域中,但只是一个不起眼的漏洞,最后也没出什么事,那问题不大。

②故意能证明吗?(提问的背景下很难)

这是执法过程中经常面对的一个问题,故意是当事人的主观状态,而且这个故意只留存在当事人的脑中,如何证明故意是执法者必须面对的问题(特别是当事人自己不承认的情况下)。通常,证明故意只能结合当事人的客观行为进行判断。比如,拿刀砍人,常人判断下来,不说杀人,至少有故意伤人的嫌疑吧?

从这个例子可以看出,故意与否,首先得有个标准,即常人对某种行为的认知。也即出现了某种行为,在常人看来,这个人很可能是具有某种目的,这才能称之为故意。

那么提问说的,故意留个漏洞,这个故意如何证明?当事人肯定会辩称自己不知道很难很难,除非这个漏洞普通程序员一眼就能看出,那么可以说故意但提问偏偏又是只有他自己知道的漏洞,那么证明故意就难上加难。

文章目录
  1. 1. 回答1
  2. 2. 回答2
  3. 3. 回答3
  4. 4. 回答4
  5. 5. 回答5