Пользователи подделывают доменное имя - PullRequest
4 голосов
/ 17 февраля 2011

В настоящее время у нас есть приложение winforms, которое позволяет пользователям входить в систему, чтобы получить доступ к системе. Система аутентификации - это пользовательский ключ. Я работаю над внедрением изменения, которое связывает имя пользователя и доменное имя пользователя NT с их существующей настраиваемой учетной записью, чтобы им не приходилось многократно входить в систему. Я использую WindowsIdentity.GetCurrent (). Затем имя хранится в таблица базы данных, которая соответствует их старому учету. Что мне интересно, так это если бы у пользователя была возможность войти в сеть с именем компьютера, которое отражает реальное доменное имя? Это может потенциально дать мошенническому пользователю доступ к чужой учетной записи. Я предполагаю, что реальный вопрос заключается в следующем: есть ли способ различать домен серверов sql и домен пользователей, не проводя сравнения строк в именах.

Ответы [ 2 ]

2 голосов
/ 17 февраля 2011

Да, если бы ваше приложение использовало аутентификацию SQL для доступа к базе данных. Если вы измените соединение с базой данных, чтобы использовать доверенную аутентификацию, SQL Server будет аутентифицировать логин на контроллере домена. Таким образом, несмотря на то, что у пользователя есть доступ к приложению, он не сможет получить доступ к базе данных, управляющей приложением. Если вы это сделаете, вы также можете переместить захват имени пользователя в хранимую процедуру SQL Server, которая обеспечит совпадение захваченного имени с именем домена, а не с локальными пользователями.

1 голос
/ 17 февраля 2011

СЕРВЕР НЕ ДОЛЖЕН ДОВЕРЯТЬ КЛИЕНТУ.

Если клиент может получить и использовать учетные данные для входа на сервер базы данных, с которым вы работаете.

Если ваш сервер является только сервером базы данных, и ваше приложение не использует надежные соединения, и ваше приложение не запрашивает учетные данные БД, которые вы используете. (См. Предыдущее утверждение.)

Я ленивый. Я исправлю WindowsIdentity.GetCurrent (). Name, чтобы вернуть «Administrator», если мне так хочется.

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