機能テストにインターンを使用しています。そのようなテストの 1 つは、管理者アカウントにログインする必要があります。
registerSuite({
name: 'login',
'login': function() {
return this.remote
.get(URL)
.findById('username')
.click()
.pressKeys(USER.ADMIN.USERNAME)
.end()
.findById('password')
.click()
.pressKeys(USER.ADMIN.PASSWORD)
.pressKeys('\n')
.end()
.findByCssSelector('.login-welcome')
.getVisibleText()
.then(function(text) {
assert.strictEqual(text, USER.ADMIN.NAME, 'User should now be logged in');
});
}
});
問題は、このパスワードがプレーン テキストとして渡されることです。ここでは、BrowserStack に表示されています。
00:19 | 0 | Send a sequence of key strokes to the active element. | password
SauceLabs でも同じです。
COMMAND: POST keys
PARAMETERS: {"value":["password"]}
問題は、これらのテストへのアクセスが制限されていないという事実にあります。これらのテストは、他の部門の担当者が表示する必要があります。
それがなくても、テスト アカウントのパスワードが侵害された場合に、攻撃者が他のすべてへの管理者アクセスを突然取得することは望ましくありません。
コマンドでパスワードがプレーンテキストとして保存/表示されないようにする方法はありますか?
私のチームは現在、機能テストの実行中にのみ機能するように、これらのアカウントをアクティブ化/非アクティブ化する別のスクリプトを実行するというアイデアを楽しんでいますが、誰かがより良い解決策を思いついたかどうかを確認したかった.