6

我使用 http 基本身份验证和 SSL 创建了一个 WCF 服务。(IIS atm 中的临时证书)

下面是相关配置。

<services>
  <service name="MyNamespace.MyService">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttps"
      name="MyEndPoint" contract="MyNamespace.IMyService" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <!-- These will be false when deployed -->
      <serviceMetadata httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
    <!-- This doesn't do anything in IIS -->
    <behavior name="CustomUsernameValidatorBehavior">
      <serviceCredentials>
        <userNameAuthentication userNamePasswordValidationMode="Custom"
          customUserNamePasswordValidatorType="MyNamespace.CustomUserNameValidator" />
      </serviceCredentials>
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <basicHttpBinding>
    <binding name="basicHttps">
      <security mode="Transport">
        <transport clientCredentialType="Basic" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

由于我在 IIS 中托管,我无法使用我的 customUsernameValidator,并且 IIS Basic 身份验证尝试针对 Windows 使用用户名和密码。

我创建了一个新用户,在本地禁用了登录,并将其放入一个新组(没有权限)。用户的唯一目的是确保他们被允许访问服务,仅此而已。该服务将是在线的,而不是内部的,例如在 Intranet 等中。

我的问题归结为这一点,由于我使用的是真正的 Windows 用户,是否存在安全风险/影响?如果是这样,可以做些什么来保护此服务/IIS?

是否应该采取措施防止信息“网络钓鱼”,例如,他们是否可以尝试使用不同的用户名和密码来查找凭据?

顺便说一句,这是在 IIS 和 SSL 中使用 Http 基本身份验证的 WCF 的有效绑定(减去一些其他端点等)。它要求 IIS 安装了基本身份验证,以及一个 Windows 用户进行身份验证。我不希望对 Windows 用户进行身份验证。

4

1 回答 1

1

如果使用基本身份验证(未定义领域),则 IIS 5.0 及以下版本存在 IP 地址泄露漏洞。请看一下这个网站: http ://www.juniper.net/security/auto/vulnerabilities/vuln1499.html

于 2013-06-24T06:33:14.350 回答