Подтвердить что ты не робот

Как безопасно использовать SecureString?

Все примеры, которые я видел, завершают преобразование SecureString обратно в стандартную строку перед ее использованием, побеждая объект. Какой хороший способ использовать безопасную строку без этой проблемы?

Я знаю, что могу настроить SecureString на BSTR, но что я могу сделать с этим BSTR? Могу ли я вернуть персонажей по одному за раз? Если да, то как?

4b9b3361

Ответ 1

Эта ссылка содержит много полезной информации, в том числе о том, как получить неуправляемый блок памяти для передачи строки в собственный код (который предположительно также защищен), класс BCL, который его использует, и ссылки на пару примеров:

http://bartdesmet.net/blogs/bart/archive/2006/03/31/3851.aspx

Главное, что это еще не так много, но вы можете создавать собственные библиотеки, которые полагаются на него.

Ответ 2

Я думаю, что страница MSDN, описывающая SecureString, говорит лучше:

Представляет собой текст, который должен быть конфиденциальным.

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

Если вы хотите изменить содержимое SecureString, все необходимые методы есть.

Однако, если вам нужно получить значение защищенной строки, вы должны ToString(), поскольку никакие другие методы не могут это сделать.

Другими словами, не используйте SecureStrings, как строки.