如何防止程序员捕获用户输入的数据?


10

我正在开发一个非常注重安全性的Web应用程序。可以采取什么措施来防止那些在应用程序上工作的人员(程序员,DBA,质量保证人员)捕获用户输入的值,这些值应该得到很好的保护,例如密码,社会保险号等?


3
我建议您将问题发布在:security.stackexchange.com/?
as=

“预防”是一个非常强烈的词。您不能阻止坏演员做坏事。您可以做的是学习并应用基本的安全原则,例如“最低特权”,“职责分离”和“隐式否认”,以安全的方式设计事物,并雇用可以信任的人员。当不可避免的情况最终发生时,制定可行的计划以减轻损害。
罗伯特·哈维

所需技术的技术术语:哈希和加密。
罗伯特·哈维

Answers:


22

这很简单。银行一直在这样做。

您有三人参与。这些是安全组。具有独特的授权。

开发人员无法分配安全授权,也无法查看生产数据。

操作员无法分配安全授权,也不能创建软件。

设置授权并且既不能创建软件也不能操作该软件的安全人员。

开发人员创建软件。操作员安装并操作它。安全人员确保两组保持隔离。


8
可以,但是开发人员仍然可以在系统中添加一些内容,以便通过电子邮件将生产数据发送到他/她的私人帐户;或将生产数据写入到他/她将在其中拾取的服务器。我认为解决此问题的唯一方法是采用严格的代码审查制度。
达伍德·伊本·卡里姆

3
总是有给予员工信任的级别。有人必须拥有宫殿的钥匙,如果您不能相信他们理解赋予他们的权力,那么也许我们不应该首先将这些钥匙交给那个人。
克里斯

1
是的,但是拥有需要多于一个人的钥匙(例如代码审查制度)意味着您需要两个人才能“误入歧途”,然后再受到损害,这比“只有一名”员工误入歧途并滥用给出的钥匙的可能性要小。他们。这是平衡信任与滥用信任的后果的全部问题。并且不要忘记人与环境的变化。一个信任的人只要给出钥匙,就会在生活中发生某些事情,从而使他变得不那么可信……
Marjan Venema 2012年

1
@EmmadKareem:正确。安全人员设置和重置组和密码,但是看不到数据。只有操作员才能看到真实数据。将数据想像成实际出纳员处理的实际资金。程序员不要碰钱;只能出纳。同样,安全人员也不会碰钱。只有出纳员才能赚钱。
S.Lott 2012年

1
@EmmadKareem:DBA不是开发人员。有两类:安全性和数据。数据DBA是“操作”的特殊部分。他们无权更改安全性;他们不能写代码;他们将看到数据,但是必须像操作员一样对待,而不是开发人员。
S.Lott 2012年

2

程序员无权访问生产服务器。但是必须有人访问。没有办法解决。而且总有可能有人会发疯并滥用他们的访问权限。

从理论上讲,即使具有完全访问权限的人也可以对哈希/盐化的数据进行安全保护。但是大多数数据都不适合散列。

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.