Security 程序员无意/恶意访问敏感用户信息的问题有多严重?

Security 程序员无意/恶意访问敏感用户信息的问题有多严重?,security,web-applications,password-protection,Security,Web Applications,Password Protection,例如,在web应用程序中,甚至在对密码和其他敏感信息进行散列并保存到数据库之前,就可以通过其他方式记录或访问这些信息 因此,对于非常大的应用程序,可能并不总是能够检查所有代码来防止这种情况发生。恶意程序员很容易将用户的私人信息打印到日志文件中 我想知道这是否是一种真正的威胁,是否存在防止此类信息泄露的标准方法 我是一个网络新手,所以请原谅我,如果这听起来像一个微不足道的问题 一个简单的解决方案是输入您的用户名和密码,然后在所有服务器日志中搜索该密码 如果您的一些程序员有恶意意图,那么您的团队就会

例如,在web应用程序中,甚至在对密码和其他敏感信息进行散列并保存到数据库之前,就可以通过其他方式记录或访问这些信息

因此,对于非常大的应用程序,可能并不总是能够检查所有代码来防止这种情况发生。恶意程序员很容易将用户的私人信息打印到日志文件中

我想知道这是否是一种真正的威胁,是否存在防止此类信息泄露的标准方法


我是一个网络新手,所以请原谅我,如果这听起来像一个微不足道的问题

一个简单的解决方案是输入您的用户名和密码,然后在所有服务器日志中搜索该密码

如果您的一些程序员有恶意意图,那么您的团队就会出现问题


编写大型应用程序需要程序员的信任,当我说信任时,我的意思是:“你相信你的团队不会犯人为的错误。”

不要给程序员你不信任敏感应用程序中使用的任何代码的写访问权。或者在部署之前检查所有代码。我不认为你还能做什么


确保所有代码更改都经过版本控制,这样有罪的程序员可能会留下痕迹。但即使这样也不太安全。他可以从另一个程序员工作站上登记更改。或者,他可以在应用程序中添加一个安全漏洞,而这种漏洞无法与诚实的错误区分开来。然后利用这个安全漏洞。

在银行和保险公司等大型企业环境中,开发人员不应该有权登录实时服务器、数据库等

开发人员只能完全访问测试环境。这实际上是年度外部审计的一部分,以检查谁有权访问生产数据


但是,我认为,只有代码审查才能真正发现这些问题,因为聪明的开发人员能够绕过这些问题。

如果存在恶意访问,您对此无能为力。程序员总是会找到另一种方法来传达您所做的预防措施

通过测试可能会发现无意访问。 避免将调试信息打印在屏幕上或打印到文件中。 在部署时,调试行通常不会被删除。
将库用作LOG4J和其他工具可以防止这种情况发生。

您需要信任您的开发人员。如果你不信任他们,你会遇到比这更大的问题

最终你无法阻止它,但如果它发生了,就应该有追索的渠道来追讨损失,在某些情况下,还可能发生刑事诉讼

这有点像“防裂软件”的问题。你可以把所有的安全防护措施都放在适当的位置,但最终一个有才华的开发人员会找到一种方法,以足够的动力绕过它们


公司文化也起到了一定作用,如果员工有责任感并感觉到自己是大局的一部分,那么他们的利益就是不去干扰公司未来的成功。

而通过混淆记录的密码来规避这一点也同样微不足道。@CodeInChaos:true;但就像我说的,你必须相信你的人不会做那样的事。如果一家专门从事密码学的公司的安全专家开始滥用他们的职位,那么该公司可能会受到严重的打击。虽然这对于小型组织或项目来说并不相关,也不可能。@Dave-即使在小型组织中,虚拟化环境的成本也非常低廉,即使是最小的专业机构也应该有一个虚拟化环境。如果这是非常重要的信息,公司将接受审计,如果开发人员能够访问实时信息,则不会通过审核数据。这就是为什么开发人员不应该在生产环境中部署他们的应用程序,应该有一个操作团队(或人员)来这样做以最小化风险。此外,无论公司规模有多小,都应该有一个测试/预生产环境,您不能在生产环境中进行测试。。。但正如我所说,任何有进取心的开发人员都可以绕过这个问题,所以您还应该记录对生产服务器的访问。