【问题标题】:How to prevent IIS not to change backslashes with forward slashes如何防止 IIS 不使用正斜杠更改反斜杠
【发布时间】:2015-06-29 18:51:54
【问题描述】:

我正在使用 WebAPI2,并且我有一个路由“Products/{Id}/details”。 当 Id 包含 \ 时,IIS 将其更改为 /。 例如 pr\p 更改为 pr/p 并且它“破坏”了 uri。 我想知道如何防止将 ** 更改为 **/,或者还有其他解决方法吗?

提前感谢您的帮助。

【问题讨论】:

  • 这可能是您的浏览器在操纵 url,而不是 IIS。
  • 我已经使用开发者工具进行了检查,并确信我的浏览器没有操纵 url。
  • 检查开发者工具的“网络”面板中使用的实际网址。我假设“\”在 url 中无效。如果需要编码为%5C.
  • @SargisKoshkaryan 您是否找到了不使用 urlrewrite 进行黑客攻击的解决方案?

标签: c# iis asp.net-web-api urlencode


【解决方案1】:

This 看起来很有用:

<rule name="KeepBackslashes" stopProcessing="true">
    <match url="(.*)" />
    <action type="Rewrite" url="http://HOST:PORT/{UrlDecode:{C:1}}" logRewrittenUrl="true" />
    <conditions>
        <add input="{UNENCODED_URL}" pattern="/(.*?)($|\?)" />
    </conditions>
</rule>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2013-11-14
    相关资源
    最近更新 更多