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);
Другие вопросы по тегам