Валидатор пользовательских имен WCF: почему этот код считается небезопасным? - PullRequest
0 голосов
/ 19 апреля 2011

Я пишу сервис WCF и хочу использовать CustomUserNameValidator.Я нашел следующий код на веб-сайте MSDN.Я предполагаю, что обычно проверяют имя пользователя и пароль из базы данных, что имеет смысл.Но почему приведенный ниже жестко закодированный код считается таким ненадежным?

// This method validates users. It allows in two users, test1 and test2 
// with passwords 1tset and 2tset respectively.
// This code is for illustration purposes only and 
// must not be used in a production environment because it is not secure.    
public override void Validate(string userName, string password)
{
if (null == userName || null == password)
    throw new ArgumentNullException();

if (!(userName == "test1" && password == "1tset") && !(userName == "test2" && password == "2tset"))
    throw new FaultException("Unknown Username or Incorrect Password");
}

У меня может быть 1 или 2 имени пользователя (общее для многих клиентов, не имеет значения, с какого клиента поступил запрос)Я нашел этот пост, в котором говорится о внесении имени пользователя / паролей в файл конфигурации.Но не понимаю, чем это сильно отличается от жесткого кодирования двух паролей.
Может кто-нибудь, пожалуйста, просветите меня?

1 Ответ

2 голосов
/ 19 апреля 2011

За исключением ограниченного количества учетных данных, пароль хранится в виде обычного текста, поэтому, если кто-то завладеет вашей сборкой, пароль будет доступен для всех.По крайней мере, в файле конфигурации вы можете указать ASP.NET зашифровать эту часть файла конфигурации, чтобы в случае утечки он ничего не стоил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...