【问题标题】:WCF Authentication / WCF REST Authetication..Different Method?WCF 身份验证/WCF REST 身份验证..不同的方法?
【发布时间】:2011-09-18 08:44:51
【问题描述】:

我做了一个 WCF REST 服务,它使用来自 OLAP 数据库的数据,它不是 Microsoft 技术,最终,我想将许多其他 OLAP 数据库连接到一个平台。

经过大量阅读,WCF REST 的安全性非常令人沮丧,总而言之,我有两个选择,一个是使用通过网络公开用户名和密码的基本身份验证,或者更好一点,使用使用 SSL 进行基本身份验证,现在我需要从网络服务器获取不同的证书。或者使用摘要式身份验证,它使用加密密码并对数据库进行身份验证,这是最好的选择,但就我而言,这是不可能的,因为我没有使用 Microsoft 技术,安全性在不同的平台上,我无法加密我的密码使用 MD5,因为数据库无法读取加密密码。

这表明我只能使用带有 SSL 的基本身份验证,但这是正确的做法吗?我看到很多产品在做类似于我所做的事情,当他们登录时,我看不到 https,而只有 http,它们不安全且容易被黑客入侵吗?

我不是要做一个防弹网站,而是一个简单的网站,使用Basic Authentication太简单了,或者实际上几乎就像是在泄露密码,但是使用https,是不是有点矫枉过正?

所以,在 REST 令人沮丧之后,我们不要使用 REST,使用普通的 WCF,根据我的阅读,他们有同样的问题。

请给我一些指导。我觉得我输了。

非常感谢

PlayKid

【问题讨论】:

    标签: c# asp.net wcf iis rest


    【解决方案1】:

    通常,基本身份验证用于常规网站,是的,如果与 http 一起使用,用户名和密码通常会超出可读范围。 Https 已经更好了,因为信息是通过线路加密发送的。但实际上,您只会在商业或银行应用程序中看到这一点。您不能使用 MD5,这很可惜,因为那将是一种折中的方法。

    因此,根据您要公开的应用程序,为简单起见使用 http 或使用更复杂和安全的 https。

    顺便说一句,重大的安全问题通常与 SQL 注入或黑客能够在您的网站上获得一些管理员级别的权限有关。这样他们就可以访问大量信息,同时嗅探您的线路并获取单个用户密码组合相对无害,如果您采取必要的预防措施和应对措施。

    【讨论】:

      【解决方案2】:

      基本上,使用 SSL 的基本身份验证确实非常安全,如果要暴露给外界,应该使用它。

      我以前见过的一种最简单的破解方法,如果您只想验证(而不是授权端点)已知客户端使用的客户端:

      OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name
      

      这将提供访问服务的用户名,如果有效用户正在访问服务,则使用 LDAP 使用您的 DB 或 AD 验证此用户,并且在每个请求中添加用户需要作为请求的一部分发送的加密密钥。这样您就可以从请求中知道用户名和加密密钥。

      您也可以将其与基本身份验证一起使用,以确保其不安全。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-14
        • 2011-03-27
        • 2011-08-18
        • 2012-03-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多