SecureString и IIS?
пользователь имеет
ASPX
стр.она имеет
textox
вход (для пароля).пользователь заполнил свой пароль.
страница отправляется в IIS.
это сначала идет в IIS.
на этом этапе пароль находится в памяти в виде простого текста.
теперь Asp.net поместил свой пароль в Secure String.
после выполнения некоторых расчетов страница отправляется клиенту.
из IIS POV:
он все еще видит пароль как обычный текст... не так ли?
2 ответа
Согласно вашей истории, нет смысла хранить пароль в SecureString
, Однажды он уже присутствовал в памяти как обычная строка, поэтому сохранял ее в SecureString
это не так полезно. Кроме того, когда форма возвращается, все равно будет отправлено в виде простого текста.
В этих ситуациях лучше всего защищать связь сервер-клиент (т.е. с помощью SSL), а не пытаться защитить систему от злоумышленников, которые получат доступ к компьютеру, проанализируют память и извлекут пароли (!).
Чтение SecureString является более сложным. Не существует простого метода ToString, который также предназначен для обеспечения безопасности данных. Для чтения данных разработчики C# должны обращаться к данным в памяти напрямую. К счастью,.NET Framework делает это довольно просто. Используйте соответствующие члены класса System.Runtime.InteropServices.Marshal, такие как метод SecureStringToBSTR, для манипулирования значением объекта SecureString.
IntPtr stringPointer = Marshal.SecureStringToBSTR(objSecureString);
string normalString = Marshal.PtrToStringBSTR(stringPointer);