web-dev-qa-db-ja.com

自動的に実行されるテストで、テストデータの独自の要素を非表示にするにはどうすればよいですか?

夜間に定期的に実行されるWebアプリケーションの自動テストを書いていて、中程度のセキュリティ問題が発生しています。

テストを徹底するために、これらのテストのために特別に生成されたモックデータだけに頼るのではなく、ライブデータをテスト入力として含めることを望んでいます(これにより、テストが大幅に堅牢になります)。ただし、これらのテストは(私の会社にとって)パブリックなGitサーバーに保存され、誰でもアクセスできる必要があるため、これは困難です。ただし、すべての従業員がこれらのテストで使用されるライブデータを表示する権限を持っているわけではありません。結果として、このライブデータを実行時に自動化(この場合はSeleniumを実行しているRobotFramework)で使用できるように非表示にする方法を考え出そうとしていますが、含まれているGitをプルダウンしているユーザーは表示/アクセスできませんリポジトリ。

保存されたデータを暗号化し、テスト自動化の実行時にのみ復号化することを望んでいました。ただし、これには、暗号化されたデータを復号化するための資格情報をテスト自動化スイートに提供する必要があり、そもそも暗号化の目的に反します。これらの自動テストは、夜間に自動的に実行する必要があるため、ユーザーがパスワードを入力してデータを復号化する必要はありません。

結果として、私がやろうとしていることが概念的に可能かどうか、そしてどうすればそれを実現できるのかと考えています。私の最善の考えは、テストを実行するジョブエージェントに復号化資格情報を提供する方法を見つけることですが、これはロジスティックに複雑であり(ボブエージェント自体もパブリックにアクセスできる必要がある可能性があります)、別の方法があるかどうか知りたいです。

私はセキュリティの専門家ではありません(ただし、基本は理解しています)ので、どんな提案も歓迎します。

ありがとう

2
UpQuark

それは少し残念です。

コードとテストフレームワークの両方が公開されている限り、許可されていないユーザーができないことは何もできません。何かをロックする必要があります。

これが私が考えることができる最良の方法は、テストを実行しているサーバーにデータを置くことです。サーバーへのアクセスを許可された個人のみに制限します。そうすれば、人々がサーバー情報を見つけても、そこからデータを引き出すためのアクセス権がなくなります。

2
user41341