Ste*_*n B 7 vb.net security active-directory
我有一个VB.Net应用程序,使用当前的Windows用户进行身份验证,而无需输入密码.在启动之前,它会检查此用户是否为"MYDOMAIN\ApplicationUsers"的成员.
如何检查这是真正的域而不是使用相同名称的不同域?是否有任何证书或公钥可在本地验证?我宁愿离线检查,没有第三方机器或数据库等.
在System.DirectoryServices.ActiveDirectory命名空间中有一些Trust和Validate方法,但它们似乎只检查域间信任并仅使用域名.
小智 1
您的问题是您使用的字符串和像 mydomain/application users 这样的字符串在域中不是唯一的。一种可能性是使用预期域中应用程序用户组的 SID 而不是名称。然后,您可以在检查成员资格之前检查该组的 SID,以确保它与运行时预期的应用程序用户组的 sid 相匹配。对于恶意用户来说,欺骗 Sid 的域和组部分要比欺骗域和组名要困难得多。
最终,如果您在恶意用户拥有的计算机上运行代码,那么这只会提高门槛,他们仍然可以绕过此检查。
| 归档时间: |
|
| 查看次数: |
529 次 |
| 最近记录: |