【问题标题】:ASP Forms Authentication with WCF?使用 WCF 进行 ASP 表单身份验证?
【发布时间】:2016-08-14 18:17:07
【问题描述】:

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

我有一个 WCF 服务,它带有用于传输安全的 Windows 身份验证和用于带有一个 TCP 端点的消息安全的证书。我的服务具有对纯文本用户名和密码进行身份验证的方法,用户名用于从数据库中检索 salt,并且使用该 salt 对给定密码进行哈希处理,然后与数据库中的密码进行比较。

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

如果我实施必要的安全措施,例如在对服务的身份验证请求失败 x 次后锁定帐户,这是否足以作为锁定我的应用程序的安全措施?

这个项目是面向公众的。

【问题讨论】:

  • 你在使用 HTTPS 吗?

标签: asp.net-mvc wcf authentication


【解决方案1】:

有多种因素需要考虑。

  1. 是否可以劫持 WCF 服务的域并重新路由 DNS?
  2. 如何在 WCF 服务中处理错误。如果发生错误,是否可以返回 OK 状态?
  3. Salt 还可以,但我建议使用 BCRYPT 之类的东西来代替密码存储和验证。
  4. 确保您的表单上也设置了requireSSL flag

【讨论】:

    【解决方案2】:

    我强烈建议在使用 WCF 服务或 REST 服务时不要使用表单身份验证。您可以使用 BASIC 身份验证并使用 SSL 很好地包装所有内容,这样会更好。需要真正关注的几件事如下:

    • 您打算如何处理蛮力尝试。
    • 您打算如何将合法用户锁定在外。
    • 您计划针对哪些操作系统?您是否正在为网络创建 WCF 服务
      还是打算以后使用 IOS 和 Android?

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

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

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

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

    【讨论】:

      【解决方案3】:
      • 使用 HTTPS
      • 在 MVC 项目中添加验证码
      • 添加重试时间跨度,限制重试次数
      • 不要使用纯文本,先编码,甚至md5会更好
      • 如果网上有这个,最好找高手

      【讨论】:

      • 老实说,我不认为你试图传达的东西那么好。拥有用于 Web 服务的验证码?奇怪的冗余,尤其是在迁移到其他服务和平台时。 “如果这在互联网上,你最好找专家”。这是一个非常不准确的说法。 Microsoft 已投资数百万美元来创建出色的库、培训制度和教程,供普通开发人员遵循,以创建安全的 API 以提供给互联网连接的设备。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 2013-08-11
      相关资源
      最近更新 更多