ASP表单身份验证与WCF?

4

我以前从未使用过这个技术栈,我只想确保我的想法是正确的。

我有一个带有 Windows 认证的 WCF 服务,用于传输安全性和证书用于消息安全性,并且具有一个 TCP 终结点。我的服务具有验证纯文本用户名和密码的方法,用户名用于从数据库检索盐,并将给定的密码与该盐哈希化,然后与数据库中的密码进行比较。

为了在我的 ASP MVC 项目中对用户进行身份验证,我只需使用表单身份验证,并在动作从服务传递用户名和密码时设置身份验证 cookie,如果 WCF 服务返回 http 码 OK,则通过身份验证。

如果我实施必要的安全措施,如在 x 次认证请求失败后锁定帐户,是否足以保护我的应用程序?

此项目面向公众。


你是否在使用HTTPS? - Simon Mourier
3个回答

2

有多个因素需要考虑。

  1. WCF服务的域名是否容易被劫持并重定向DNS?
  2. WCF服务中的错误处理方式是什么?在发生错误的情况下,可能会返回OK状态吗?
  3. 盐可以使用,但我建议使用类似于BCRYPT这样的密码存储和验证方法。
  4. 确保在表单上设置了requireSSL标志


1
我强烈建议在使用WCF服务或REST服务时远离表单身份验证。您可以使用基本身份验证,并使用SSL将所有内容包装得非常好,这将更好。真正需要考虑的几个问题是:

  • 您计划如何处理暴力攻击。
  • 您计划如何防止合法用户被锁定。
  • 您计划针对哪些操作系统?您是为网站创建WCF服务还是计划稍后使用IOS和Android?

在考虑了以上所有选项之后,请查看以下内容:

https://msdn.microsoft.com/en-us/library/ff406125.aspx

当你认为已经读够了时,请再多读一些。OWASP最佳WCF安全实践是一个很棒的标准,你甚至可以从中创建一个检查清单。

https://www.owasp.org/index.php/WCF_Security_Best_Practices


0
  • 使用HTTPS
  • 在MVC项目中添加验证码代码
  • 在重试之间添加时间间隔,限制重试次数
  • 不要使用明文,先进行编码,即使是md5也会更好
  • 如果这是在互联网上,最好找一个专家

2
我真的不认为你试图传达的内容有多好。为 Web 服务使用 CAPTCHA?在迁移到其他服务和平台时,这似乎是多余的。"如果这在互联网上,你最好找一个专家"。这是一个非常不准确的说法。微软已经投资数百万美元来创建令人惊叹的库、培训体系和教程,供普通开发人员遵循,以创建安全的 API,并提供给连接到互联网的设备。 - Kevin B Burns

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接