如何在Selenium脚本中保护密码

时间:2014-10-21 14:36:09

标签: security selenium automated-tests

我正在编写selenium(seleno)脚本来测试需要用户登录的ac#MVC Web应用程序。目前,用户名和密码被硬编码到脚本中,但我需要确保密码在之前受到保护我可以将脚本提交到我们的代码库。

脚本将通过CI(TeamCity)自动运行,因此密码必须可供程序使用,无需人工输入。

就安全要求而言,密码是开发人员的常识,但它也与部署到客户端的软件捆绑在一起(这显然为拥有密码的任何人打开了后门 - 无论好坏) 。因此,如果有人访问我们的代码库,我们需要确保他们无法获得密码。密码本身存储(加盐)在sqlite数据库中。

如果我将加密值传递给程序然后解密它会保护我们吗?我不太担心测试运行的服务器上的密码存在,因为服务器应该被安全地锁定,并且只会在测试期间存在。

我能想到的另一件事是,一旦TeamCity启动临时服务器实例并且在运行测试之前,将临时密码插入sqlite数据库。不知道如何实现这一点。

我原本以为这对硒来说是一个非常普遍的问题,但我还没有找到明确的解决方案。

3 个答案:

答案 0 :(得分:0)

正如SiKing建议的那样,解决方案是使用临时的,特定于测试的密码,该密码不会成为生产代码。 Simples。

答案 1 :(得分:0)

我使用的一种方法是执行javascript来评估事物:

<td>storeEval</td>
<td>prompt(&quot;What password&quot;)</td>
<td>secretPassword</td>

这只适用于用户通过webdriver运行的东西。

可以在测试开始时设置某种小的ajax请求到http://localhost/credentials.json或类似的,这是在CI实例上设置的(但在其他任何地方都不可用)。

答案 2 :(得分:0)

解决方案是在运行时设置密码。我会建议环境变量。然后他们不在你的代码库中,而是有人需要入侵你运行测试的地方。