繁体   English   中英

ValidateCredentials()-安全问题

[英]ValidateCredentials() - Security Concerns

我希望所有的.NET开发人员都可以帮助我解决这一难题。 我目前在公司管理一个ASP.NET Intranet网站。 要使用Active Directory对我们的用户进行身份验证,我们具有类似于以下代码:

using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, string name, string user, string password) {

  bool credsOK = pc.ValidateCredentials(string user, string password);

  //Check if the creds come back valid
  if(credsOK) {

      //Do Stuff
  }
}

我担心的是,有权访问该代码的人可能会在调用ValidateCredentials之后在if语句中设置一个断点,在password变量上添加一个监视,从而能够以纯文本格式查看用户的密码,对我来说,这是危险和不安全的环境,尤其是在领域环境中。

有几个问题:

1)为什么ValidateCredentials将凭据作为纯字符串而不是更安全的数据类型?

2)在不使用ValidateCredentials()的情况下,我可以使用其凭据对用户进行身份验证的一些最佳实践方法是什么?

您能提供的任何帮助将不胜感激。

谢谢,

-rk15000

我的想法是,如果有人可以访问源代码并放置用于收集密码的断点,则可能需要担心更大的问题。 毕竟,他们将需要能够将远程调试器连接到生产服务器。

为了回答你的问题。 您可能需要走上单独的登录服务之路,这可能会使用某些SSO工具(例如ADFS)将身份验证与您的应用程序隔离。 但是,根据您给出的示例,尚不清楚会产生多少影响

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM