2011-01-18 2 views
0

Даже с включенным https вы можете написать пароль для журнала событий с кодом. Любой способ сохранить этот пароль зашифрованным кодом, пока вы проверяете его на хранилище данных?Защита паролей в коде

(с использованием Войти управления)

(не может добавить свой комментарий к ответу Андрея, поэтому я ставлю его здесь)
NTLM использует имя пользователя/пароль, машины пользователь вошел в систему правильно? Для этого я думал об использовании ActiveDirectory на сервере в качестве хранилища данных. Это будет иметь разный un/pw, чем то, что пользователь в настоящий момент подписывает на свой компьютер.

ответ

0

Если вы обеспокоены тем, что пароль в незашифрованном виде находится в памяти, просто зашифруйте его как можно скорее в рабочем процессе. Также убедитесь, что вы никогда не регистрируете пароль открытого текста в любых журналах событий.

+0

Это действительно ничего не исправить. Пароль открытого текста по-прежнему будет доступен во всех точках жизненного цикла через объект контекста, который передал его в запросе для начала. Это не может быть изменено, и оно доступно повсеместно до тех пор, пока окончательный ответ не будет вытолкнут. –

+0

@Joel - правда, но любое решение, представленное здесь, будет иметь такую ​​же проблему. –

+0

не обязательно. Это зависит от того, каковы его параметры аутентификации. Если он застрял в хранилище SQL или какой-либо другой подобной БД, тогда это правильно. Если он сможет изменить свою схему аутентификации для обеспечения интегрированной проверки подлинности NTLM, она будет хеширована через весь процесс и ни в коем случае не будет доступен пароль для просмотра или хранения. –

1

Проверьте класс SecureString.

Представляет собой текст, который следует хранить конфиденциальным. Текст зашифровывается для обеспечения конфиденциальности при использовании и удаляется из памяти компьютера, когда он больше не нужен.

+0

'SecureString' классный, но на самом деле не имеет смысла для ASP.NET. Пароль открытого текста будет передан серверу в виде строки и должен быть преобразован в «SecureString». В этот момент OP может также зашифровать пароль. –

1

Если вы отправляете текстовый пароль в форме, он всегда доступен в объекте HttpContext. Его нельзя удалить или зашифровать в течение срока действия страницы. Возможность его хранения доступна в течение всего времени, пока окончательный ответ на страницу не будет вытолкнут клиенту. Кроме того, пароль доступен в виде открытого текста в памяти и доступен через шестнадцатеричный редактор (в ОЗУ).

Если вы обеспокоены тем, что пароль доступен в этих моделях, вам будет лучше обслуживаться, включив аутентификацию NTLM через встроенную проверку подлинности Windows, которая хэшируется от ударов до пули.

Смежные вопросы