Я пишу сценарии селена (seleno) для проверки веб-приложения aC# MVC, которое требует от пользователей входа в систему. В настоящее время имя пользователя и пароль жестко закодированы в скрипт, но мне нужно убедитесь, что пароль защищен, прежде чем я могу зафиксировать скрипты в нашем репозитории кода.Как защитить пароль в сценариях Selenium
Сценарии будут выполняться автономно через CI (TeamCity), поэтому пароль должен быть доступен программе без какого-либо человеческого ввода.
С точки зрения требований безопасности пароль является общеизвестным среди разработчиков, но он также поставляется вместе с программным обеспечением, которое развертывается для клиентов (что, очевидно, открывает дверь любому, у кого есть пароль, - лучше или хуже). Поэтому, если кто-то получает доступ к нашей кодовой базе, мы должны быть уверены, что они не могут получить пароль. Сам пароль хранится (засолен) в базе данных sqlite.
Если я передам зашифрованное значение в программу, а затем расшифровать его, это защитит нас? Я не слишком беспокоился о том, что пароль находится в памяти на сервере, где выполняется тест, поскольку этот сервер должен быть надежно заблокирован и будет существовать только на время тестов.
Единственное, что я могу придумать, это вставить временный пароль в базу данных sqlite, когда TeamCity развернет экземпляр сервера temp и перед запуском тестов. Не знаете, как это достичь.
Я бы подумал, что это будет очень распространенная проблема с селеном, но я пока не смог найти окончательное решение.
«Если кто-то получает доступ к нашей кодовой базе», то у вас есть совершенно разные проблемы! «Я бы подумал, что это будет очень распространенная проблема с селеном» ... протест ** тест ** пароли - это пустая трата усилий, поэтому, как правило, это не проблема. У вас нет тестовых учетных записей/паролей, которые удаляли db перед отправкой приложения клиентам? – SiKing
Я заметил ваш комментарий о том, что вы не знаете, как вставлять временные пароли. Это легко: пойдите, возьмите Кокс, идите к своему разработчику db, и сделайте друга. Попросите его объяснить вам «JDBC». – SiKing
Вы приближаетесь к проблеме из-за неправильного угла. Управление тестовыми паролями - это то, что * сильно * зависит от программного обеспечения сервера, на котором вы работаете. Я делаю это определенным образом для одного из моих приложений Django, но говорю вам, как я это делаю, это не будет особенно полезно для вас. SiKing дал вам один вариант: напрямую поговорить с БД. У вас также могут быть представления, которые существуют только во время тестирования, которые могли бы помочь вам сделать это, не обсуждая напрямую с БД. Или у вас может быть специальный проводной протокол для этого (что я и делаю). – Louis