Security 安全存储和使用用户凭据测试环境的策略 问题

Security 安全存储和使用用户凭据测试环境的策略 问题,security,authentication,automated-tests,protractor,password-protection,Security,Authentication,Automated Tests,Protractor,Password Protection,我正在现有的web应用程序上设置一组e2e测试。这需要在登录页面(邮件和密码)上自动登录。到目前为止,由于我仍在开发测试,我一直在将测试帐户凭据以明文形式放在测试脚本中。在每次提交之前,我一直在手动删除凭据,但它不能在某个服务器上进行适当的自动测试,也不能保证所有开发人员都能够在自己的计算机上运行测试。此外,测试需要能够使用多组不同的用户凭据运行,并且凭据安全至关重要。由于我们需要测试访问权限,似乎我们无法避免至少有一个测试帐户可以访问机密数据 问题: 所以我的问题是:您知道或使用什么策略来安全

我正在现有的web应用程序上设置一组e2e测试。这需要在登录页面(邮件和密码)上自动登录。到目前为止,由于我仍在开发测试,我一直在将测试帐户凭据以明文形式放在测试脚本中。在每次提交之前,我一直在手动删除凭据,但它不能在某个服务器上进行适当的自动测试,也不能保证所有开发人员都能够在自己的计算机上运行测试。此外,测试需要能够使用多组不同的用户凭据运行,并且凭据安全至关重要。由于我们需要测试访问权限,似乎我们无法避免至少有一个测试帐户可以访问机密数据

问题: 所以我的问题是:您知道或使用什么策略来安全地存储和使用开发人员机器、独立服务器或两者上的测试环境中的测试凭据

前期研究 我花了几天的时间在网上搜索(大部分是StackOverflow,还有很多尝试使用我的Google fu),也询问了同事们,但没有找到任何已知和使用的在测试中处理和存储凭据的策略。我认为许多熟练的程序员一定已经用多种方法解决了这个问题

StackOverflow善意地提出了一些类似的问题,这些问题提供了一些有趣的策略:

  • ,其中接受的答案建议加密配置文件。这似乎是一个非常有趣的想法,但我不清楚这在服务器和单个开发人员计算机之间的分布情况如何,以及如何处理这一问题
  • ,其中询问者通过声明他们只是将凭据作为明文放在受密码保护的服务器上的文件中来回应自己。这可能适用于单个服务器,但我确实认为,如果使用多台本地开发人员机器或单独的测试服务器进行测试,那么这是有问题的
个案详情 我认为,无论实施细节如何,这个问题都是大家都感兴趣的,但由于它们可能是大家感兴趣的,所以这里还是提供了它们


我正在使用它来测试应用程序,并且正在考虑进一步的测试自动化。我们计划在Git服务器上连接测试,并让它在每次提交到主分支时运行测试,这样我们就知道它永远不会中断。或者,在我们的测试过程中没有中断,至少:)

我不知道你说的“安全存储和使用用户凭据测试环境的策略”是什么意思。您声明您的测试需要使用不同的凭据集运行。如果您的测试能够以明文形式访问凭据,那么在同一帐户下运行的任何其他应用程序/用户也是如此

当然,您可以对存储密码的文件进行加密,但您需要将加密密钥存储在应用程序或计算机的某个位置,应用程序才能对其进行解密

您可以使用非对称加密来使用公钥加密任何凭据,并且只允许运行测试的帐户访问私钥。但是,任何能够使用运行测试的帐户登录的人都可以解密凭据文件并获取密码

最好的选择是在测试中不要使用机密数据。我在一家从事医疗软件的公司工作,我们有一个测试域,在这个域中,我们使用知名帐户设置软件,并使用虚假数据进行测试


或者如果您希望其他开发人员能够在自己的凭据下运行测试,您可以考虑切换到Kerberos并避免所有密码。

< P>我同意上面的答案,您可以创建一个密钥,将其存储在某处并使用。 另外你可以得到加密,我发现了一个链接,这可能对你有帮助。

你的观点很好。我认为我们的目标是在测试期间不允许访问实际数据。当我写“安全存储和使用用户凭据测试环境的策略”时,我指的是以非明文方式存储它们,同时避免将它们置于源代码管理之下(即避免在开发人员机器、测试服务器和源代码管理服务器上有许多凭据副本)。