用户欺骗域名

时间:2011-02-16 22:54:22

标签: c# active-directory

我们目前有一个winforms应用程序,允许用户登录以访问系统。身份验证系统是定制的kludge。我正在努力实现一个将用户NT用户名和域名链接到他们现有的自定义帐户的更改,这样他们就不需要重复登录了。我正在使用WindowsIdentity.GetCurrent()。然后将该信息存储在一个映射到旧accountid的数据库表。我想知道的是,用户是否可以使用反映真实域名的计算机名称进入网络?这可能会让恶意用户访问某个elses帐户。我想真正的问题是:有没有办法区分sql servers域和用户域,而不需要对名称进行字符串比较。

2 个答案:

答案 0 :(得分:2)

是的,如果您的应用使用SQL身份验证来访问数据库。如果更改数据库连接以使用受信任的身份验证,则SQL Server将根据域控制器对登录进行身份验证。因此,尽管用户可以访问应用程序,但他们无法访问驱动应用程序的数据库。如果您这样做,您还可以将用户名的捕获移动到SQL Server存储过程,这将确保捕获的名称与域的名称相匹配,而不是本地用户。

答案 1 :(得分:1)

服务器不得信任客户。

如果客户端可以获取并使用凭据登录到您要干的数据库服务器。

如果您的服务器只是一个数据库服务器,并且您的应用程序不使用受信任的连接,并且您的应用程序没有提示输入数据库凭据,那么您就会干杯。 (见前面的陈述。)

我很懒。我将修补WindowsIdentity.GetCurrent()。如果我愿意,请返回“管理员”。