FormsAuthentication широко используется и относительно безопасна при правильной настройке.
Убедитесь, что вы добавили свой MachineKey (вы можете сгенерировать его здесь http://aspnetresources.com/tools/machineKey, который является той же ссылкой, что и на сайте MSDN)
- Если это защищенная часть системы; рассмотрите возможность установки тайм-аутов сеанса на низкое значение (10/15 минут - это удобство в сравнении с безопасностью).
- Убедитесь, что ваш членский провайдер настроен на хороший алгоритм HASH, т.е.
<membership userIsOnlineTimeWindow="15" hashAlgorithmType="SHA512">
- и сам провайдер настроен на хеширование, а не шифрование
passwordFormat="Hashed"
- и что ваш RoleManager (если вы используете роли) и раздел аутентификации форм содержат конфигурацию для файлов cookie;
cookieProtection="All"
Система сброса пароля в ней - шутка; Я не буду копировать и вставлять себя, но вы можете увидеть предпочтительный способ сброса паролей здесь https://stackoverflow.com/questions/10213124/combine-passwordrecovery-and-changepassword-control/10237107#10237107
Это в основном хорошее начало; Вы также можете посмотреть руководство по безопасности членства в Troy Hunts http://www.troyhunt.com/2010/07/owasp-top-10-for-net-developers-part-3.html
Oh и Всегда собирать информацию о пользователях / обрабатывать входы в систему / и регистрации через HTTPS (SSL). И попробуйте использовать какой-нибудь токен проверки (есть один в MVC https://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=msdn+AntiForgeryToken),, это уменьшает ландшафт атаки для CSRF и в основном грубое форсирование.