【问题标题】:DotNetOpenAuth OpenID on ISA 2006 Reverse Proxy problemISA 2006 反向代理问题上的 DotNetOpenAuth OpenID
【发布时间】:2010-06-16 23:56:39
【问题描述】:

我正在尝试托管我的网站,该网站在 ISA 2006(反向代理)后面使用 DotNetOpenAuth (OpenID),并在通过提供商(如 Google)进行身份验证后,它返回一个 URL 中包含 %253A 的 URL。但是,ISA HTTP 过滤器会拒绝该请求。

我需要做的是,在 ISA Web 发布规则上,右键单击 > 配置 HTTP 策略属性 > 取消选中“验证规范化”并且它起作用了。

  • 这是 ISA 2006 上普遍存在的问题吗?其他防火墙是否也有类似问题?
  • 或者,是 OpenID 还是 DotNetOpenAuth 问题?
  • 在 ISA 上禁用规范化检查是否安全?

根据 MSDN,引用“Web 服务器接收 URL 编码的请求。这意味着某些字符可能会替换为百分号 (%),后跟特定数字。例如,%20 对应于空格,因此http://myserver/My%20Dir/My%20File.htm 的请求与http://myserver/My Dir/My File.htm 的请求相同。规范化是对 URL 编码请求进行解码的过程。 因为 % 可以是 URL 编码的,所以攻击者可以向基本上是双重编码的服务器提交精心设计的请求。如果发生这种情况,Internet 信息服务 (IIS) 可能会接受一个请求,否则它会因为无效而拒绝该请求。当您选择验证规范化时,HTTP 过滤器会将 URL 规范化两次。如果第一次规范化后的 URL 与第二次规范化后的 URL 不同,则过滤器拒绝该请求。这可以防止依赖双重编码请求的攻击。 请注意,虽然我们建议您使用验证规范化功能,但它也可能会阻止包含 % 的合法请求。”

【问题讨论】:

  • 您可能希望将此发布到 ServerFault.com,因为它更多地是关于防火墙和 ISA 服务器而不是编程。你可能会在那里得到更多的叮咬:)

标签: .net iis openid dotnetopenauth isaserver


【解决方案1】:

OpenID 消息的请求中通常可能包含双重编码的 URL。因此,根据您提供的文档,我想说您必须在反向代理上禁用“验证规范化”。

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 2011-07-13
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 2020-11-30
    • 2016-02-12
    相关资源
    最近更新 更多