【问题标题】:Strategies for safely storing and using user credentials testing environments安全存储和使用用户凭证测试环境的策略
【发布时间】:2014-11-27 11:06:54
【问题描述】:

问题

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

问题

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

先前的研究

我花了几天时间浏览网络(主要是 StackOverflow,并多次尝试使用我的 Google-fu)以及询问同事,但没有找到任何已知和使用的策略来处理和存储测试中的凭据。我认为许多熟练的程序员一定已经通过多种方式解决了这个问题。

StackOverflow 友好地提出了这些有点相似的问题,这些问题提供了一些有趣的策略:

  • Safely storing credentials when I need to retrieve the password for use,其中接受的答案建议加密配置文件。这似乎是一个非常有趣的想法,但我不清楚它在服务器和个人开发者计算机之间的分布情况,以及如何处理其后勤工作。
  • Storing credentials for automated use,询问者通过说明他们只是将凭据作为明文放在受密码保护的服务器上的文件中来回应自己。这可能适用于单个服务器,但我认为如果将使用大量本地开发人员机器或单独的测试服务器进行测试,这会产生问题。

案例详情

我认为无论实施细节如何,这个问题都是普遍感兴趣的,但由于它们可能会引起人们的兴趣,所以无论如何都会在此处提供。

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

【问题讨论】:

    标签: security authentication automated-tests protractor password-protection


    【解决方案1】:

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

    当然,您可以加密存储密码的文件,但您需要将加密密钥存储在应用程序或机器上的某个位置,以便应用程序能够解密它。

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

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

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

    【讨论】:

    • 你有很好的观点。我认为我们的目标是在测试期间禁止访问实际数据。当我写“安全存储和使用用户凭据测试环境的策略”时,我的意思是以非明文方式存储它们,同时避免将它们置于源代码控制之下(即避免在开发人员机器上出现大量凭据副本、测试服务器和源代码控制服务器)。
    【解决方案2】:

    我同意上面的答案,您可以创建一个密钥,将其存储在某个地方并使用。 否则你可以获得加密,我找到了一个可能对你有帮助的链接。 http://docstore.mik.ua/orelly/java-ent/security/ch13_05.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      相关资源
      最近更新 更多