我们目前有一个winforms应用程序,允许用户登录以访问系统。认证系统是一个定制的kludge。我正在执行一项更改,将用户NT用户名和域名与他们现有的自定义帐户相关联,以便他们不需要重复登录。我使用WindowsIdentity.GetCurrent()。Name然后将该信息存储在数据库表,映射到他们的旧的accountid。我想知道的是,如果用户能够通过反映真实域名的计算机名称来访问网络,那么这是可能的吗?这可能会使恶意用户访问某人的帐户。我想真正的问题是:是否有办法区分SQL Server域和用户域,而不仅仅是对名称进行字符串比较。用户欺骗域名
Q
用户欺骗域名
4
A
回答
2
是的,如果您的应用程序使用SQL身份验证来访问数据库,如果您将数据库连接更改为使用可信身份验证,则SQL Server将根据域控制器对登录进行身份验证。因此,尽管用户可以访问应用程序,但他们将无法访问驱动应用程序的数据库。如果你这样做了,你还可以将用户名的捕获移动到一个SQL Server存储过程,以确保捕获的名称与域名相匹配,而不是本地用户。
+0
我同意这是最佳方式,但这种改变将是巨大的,不会被管理部门批准。 – cdaq 2011-02-16 23:08:32
1
服务器不能信任客户。
如果客户端可以获取并使用凭据登录到数据库服务器,您就会烤面包。
如果您的服务器只是一个数据库服务器,并且您的应用程序不使用受信任的连接,并且您的应用程序不会提示输入数据库凭证,那么您将进行烘烤。 (见前面的声明)
我很懒。我将修补WindowsIdentity.GetCurrent()。如果我感觉喜欢它,则返回“Administrator”。
相关问题
- 1. ARP欺骗/ DNS欺骗 - 区别
- 2. 您会如何防止用户欺骗Firebase中的用户名?
- 3. 用SinonJS欺骗API?
- 4. 欺骗Javascript.location.hostname
- 5. 与欺骗
- 6. 欺骗SQL Server
- 7. 欺骗libdc1394
- 8. Rails:保持用户欺骗检查DRY
- 9. 欺骗用户代理的Safari扩展?
- 10. Appengine欺骗用户代理字符串
- 11. MIME类型欺骗
- 12. ICMP欺骗帮助
- 13. 主机头欺骗
- 14. IP地址欺骗
- 15. Facebook安全 - 欺骗?
- 16. 欺骗反射器
- 17. 会话欺骗(PHP)
- 18. 防止IP欺骗
- 19. App_id所欺骗和滥用
- 20. 防止用PayPal欺骗
- 21. 欺骗Usercontrol以允许“。”命名空间
- 22. 软件arp中毒,mac欺骗,ip欺骗
- 23. Django - 检测唯一用户。忽略/禁止欺骗用户
- 24. 处理短信欺骗
- 25. Chrome DNS欺骗保护
- 26. 防止欺骗位置
- 27. 如何防止欺骗iBeacons?
- 28. 欺骗电子钓鱼
- 29. AngularJS ng重复:欺骗
- 30. 的JMeter:IP欺骗不工作
我可能完全不了解您的情况。这听起来像你正在使用SQL身份验证来访问数据库并将连接字符串存储在你的winapp中的某处。如果是这样的话,人们可能会从winapp窃取连接字符串并获得对数据库的访问权限。关于您的担忧,您可以考虑存储SID而不是用户名和域名。是的,这仍然没有保证,但至少这使得酒吧更高。网络上没有可用的工具来帮助您在域中伪造SID。我认为我们仍然可以做到这一点,但它应该是非常棘手的 – 2011-02-17 03:36:03
谢谢哈维,这是我走的路。我现在使用用户名/域名信息存储令牌所有者ssid。这应该有效地解决某人设置自己的域名并使用VPN冒充另一个用户的问题。 – cdaq 2011-02-17 18:56:50