Нет, нет реализации Text
, которая делает это для вас напрямую.
Использование чистых кактусов:
new TextOf(
new UncheckedScalar<>(
new Ternary<>(
someNullString != null,
someNullString,
""
)
).value()
)
У Вас все еще есть некоторые переменные, которые не составляются:
Не всеми теми проблемами является конкретный MS, но их стоит упомянуть, потому что любой из них мог легко перевесить проблему, о которой Вы спрашиваете о, если не заботившийся. Но, в целях Вашего вопроса я предположу, что нет никаких проблем с ними.
В этом случае, я вполне уверен, аутентификация форм делает то, что она, как предполагается, делает. Я не думаю, что там существует любое в настоящее время активное использование.
Насколько я знаю, что пароль будет отправлен как простой текст (но закодирован). Таким образом, самая важная вещь сделать состоит в том, чтобы использовать протокол HTTPS на экранах входа в систему.
другая установка, кажется, безопасна для меня.
С Базовой аутентификацией HTTP, которая является тем, что использует аутентификация канонических форм.NET, для просматривания secret.aspx страницы, должен отправить браузер, Base64 закодировал конкатенацию имени пользователя и пароля.
, Если Вы не используете SSL, никто, у кого есть доступ для сканирования сети между сервером, и браузер может считать эту информацию. Они могут декодировать имя пользователя и пароль. Они могут воспроизвести имя пользователя и пароль в будущем для получения доступа к secret.aspx странице.
Тем не менее, если Вы не используете SSL, кто-то может также просканировать целую сессию кого-то еще использующего secret.aspx, поэтому в действительности, у них был бы доступ к содержанию страницы также.
Ну, попытайтесь заглянуть за кулисы:
Защита паролем
Приложения, которые хранят имена пользователей, пароли и другую информацию аутентификации в базе данных, никогда не должны хранить пароли в простом тексте, чтобы база данных быть украденными или поставленными под угрозу. С этой целью SqlMembershipProvider поддерживает три формата устройства хранения данных ("кодировка") для ответов пароля и паролей. Свойство PasswordFormat поставщика, которое инициализируется от passwordFormat атрибута конфигурации, определяет, какой формат используется:
- MembershipPasswordFormat. Ясный, который хранит пароли и ответы пароля в простом тексте.
- MembershipPasswordFormat. Хешированный (значение по умолчанию), который хранит соленые хеши, сгенерированные из ответов пароля и паролей. Соль является случайным 128-разрядным значением, сгенерированным Платформой.NET класс RNGCryptoServiceProvider. Каждая пара ответа пароля/пароля посолилась с этим уникальным значением, и соль хранится в поле PasswordSalt aspnet_Membership таблицы. Результат хеширования пароля и соли хранится в поле Password. Точно так же результат хеширования ответа пароля и соли хранится в поле PasswordAnswer.
- MembershipPasswordFormat. Зашифрованный, который хранит ответы пароля и зашифрованные пароли. SqlMembershipProvider шифрует пароли и ответы пароля с помощью симметричного шифрования/ключа расшифровки, указанного в атрибуте decryptionKey раздела конфигурации и алгоритме шифрования, указанном в атрибуте дешифрования раздела конфигурации. SqlMembershipProvider выдает исключение, если просят зашифровать пароли и ответы пароля, и если decryptionKey установлен Автоматически сгенерировать. Это предотвращает базу данных членства, содержащую зашифрованные пароли и ответы пароля от становления недопустимым, если перемещено в другой сервер или другое приложение.
, Таким образом, сила Вашей безопасности (из поля) будет зависеть, на которой стратегии формата защиты паролем Вы используете:
я не знаю, возможно ли использовать своего рода взлом таблицы радуги в основную Хешем систему по умолчанию.
для получения дополнительной информации, проверьте эту ссылку: http://msdn.microsoft.com/en-us/library/aa478949.aspx
Если настроено правильно через поставщика членства, у Вас будет соответствующий уровень безопасности. За пределами этого доступ к той странице мог бы быть доступным посредством канонических нападений, но это имеет отношение к Вашей общей безопасности. Я дал презентацию использования Блоки Корпоративного приложения безопасности . Вы могли бы хотеть читать на тех и изучить это при реализации безопасности на сайте и просто знать об угрозах коллективной безопасности. Никакой сайт никогда не будет на 100% unhackable, учитывая, что Вы находитесь в открытой общей сети, и общая безопасность была бы отключенным сервером, привязался, сейф охранял 24/7 вооруженными силами (вокруг DOD безопасность уровня, базирующаяся Оранжевой книги). Но из функциональности поля Поставщиков Членства (при корректном конфигурировании) предложит хорошую сумму безопасности.
Редактирование: Да, я соглашаюсь с другим комментарием, который был сделан, HTTPS, по крайней мере, на журнале на экранах является данным, если Вы хотите защитить имя пользователя/пароли от анализаторов пакетов и мониторов сети.
Asp. Сеть поддерживает сессии без cookie, как это сообщение в блоге шоу . Вместо сеансовых куки это использует идентификатор в URL для отслеживания пользователей.
я не уверен, насколько безопасный это, но я думал бы, что это - безопасное как трудность к грубой силе строка идентификационных данных.
похоже, что это работает более или менее из поля, однако перенаправляя пользователя и желая поддержать состояние сеанса, необходимо включать идентификатор сессии. Сообщение в блоге показывает, как сделать это, а также много других статей о сети.
Вот две хороших статьи от Microsoft на предмете:
, Как К: Защитите Аутентификацию Форм в ASP.NET 2.0
ИНФОРМАЦИЯ: Справка Безопасная Аутентификация Форм при помощи Уровня защищенных сокетов (SSL)
Cookie по URL не достаточно защищены, существует столько различных проблем с ним (особенно утечка ссылающегося домена, если у Вас есть кто-либо), и использование HTTPS.