如果规格有缺陷,是否仍应遵守?


28

我被指派为我的雇主的应用程序之一与客户开发的外部系统集成。我们客户的集成规范存在一些与安全性有关的明显缺陷。这些缺陷将允许未经授权的用户访问系统以查看受限制的数据。

我已经指出了缺陷及其潜在的安全风险(如果按设计实施它们),并提供了没有缺陷的替代方法,但是(总之)客户已经告诉他们“按照我们指定的方式进行操作”。

程序员是否有道德责任不实施具有已知安全风险的代码?在什么时候,客户的要求超过我们作为软件开发人员创建安全应用程序所承担的道德责任?


9
您已经指出了风险,但是您是否还指出了这些风险对其运营某些方面的可能性以及(可能更重要的)影响?您确定客户完全了解风险并拥有相应的证明文件吗?
Thomas Owens

7
我最近在一些工作中一直在脑海里折腾。如果我们相对于桥梁建造者进行相同的比较,在这种情况下,他被要求建造一座桥梁,而桥梁下面没有那些烦人的,阻碍性的支撑,或者只能承受两辆汽车的重量,那么出于他的声誉,他可能会拒绝。我认为工程师/人员有责任拒绝时,确实有必要提出意见。诚然,绝大多数设计投诉都没有接近人身伤害/死亡的风险。
Katana314

2
@ Katana314在我目前的情况下,绝对没有人身伤害或死亡的风险。那绝对是个容易回答的问题……但是,我想,你真是头疼。经过进一步的搜索,我找到了ACM的《道德准则》,该准则似乎在加强我们识别和发现任何可预见问题的责任。
尼克·奥兰多

3
@TheSoftwareDev足够公平,但我要补充一点,有时人为风险可能比我们意识到的要深。一种安全隐患,使黑客能够轻松获取人们的信息并窃取其身份,使他们无家可归,以后自杀。一个社交网络漏洞,使缠扰者可以拦截妇女关于在餐厅开会的私人通讯,然后亲自跟踪并诱捕她;创造性地进行思考可能有些病态,但是有时我们可能会忘记我们的项目可能会被使用的范围很广。
Katana314

1
@gnat并不是真的重复。链接的问题是关于软件道德的一般方法,这个问题是在问“不再是我的问题”之前,OP应该打多少仗。
rath

Answers:


40

我认为您已经通过指出问题并提出替代方案来完成自己的任务。如果他们坚持要您做会使他们面临一定风险的事情,则应确保您有一份书面记录(及其备份),表明他们明确地要求这样做,并且知道所涉及的风险。如果你真的如果他们首先签署了某种法律文件/免责声明,其中他们承认与他们要求您做的事情有关的风险(您当然会请律师),您可以告诉他们,他们愿意做他们想做的事情起草此类文件)。我个人不知道有这种情况下的此类文件的任何先例,但我相信您可以找到律师来帮助您。如果您的公司有法务部门,则可能存在公司责任的情况下,应该与他们联系。当然,如果是这样的话,您也应该与您的经理进行讨论。

我认为,唯一可以拒绝执行工作的情况可能是,如果这是针对系统的软件,那么您担心的缺陷可能会导致系统受到损害,从而导致极有可能导致生命损失/严重的人身伤害或某些灾难性的财产损失。


4
还是个人责任...也就是说,如果它会让您被解雇或更糟
Dan Pichelman 2013年

5
没有任何文件可以证明客户或雇主可以签署该文件以授予OP民事诉讼豁免权。根据他的工作性质,他可能会属于与他的公司的代理关系的定义和保护,提供了责任盾,但在没有这样的盾的情况下,“我只是遵循命令”并不是辩护。记录的好坏。原告/起诉方可以简单地说:“您可能已经辞职;即使其他人会这样做,现在也将在他们的头上,而不是您的头上”。
KeithS

2
公司能做的最好的事情就是保证承保OP的财务责任,包括法院和法律费用。如果事实证明他违反了法律,公司将无法为他入狱。
KeithS

1
@BazzPsychoNut:听起来OP曾经试图指出风险并进行解释,但被忽略了。如果他们不能/不愿意直接拒绝做的工作,我认为他们必须支付他们的屁股尽可能多地他们应该咨询律师(谁我怀疑会给他们的情况更具体的建议,告诉他们掩盖自己的屁股)。
FrustratedWithFormsDesigner 2013年

1
+1为笔迹,并且如果您参与部署,也要小心。尽管不太可能实现,但有许多法律(例如英国的《数据保护法》)意味着对个人数据的疏忽处理可能会构成严重罪行。
马特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.