【问题标题】:Need workaround for & in url, iis7需要解决方法 & in url, iis7
【发布时间】:2012-05-29 06:05:13
【问题描述】:

我正在将旧的 asp.net 网站从 windows 2003 移动到 windows 2008 R2。

某些页面在 url 中有 '&',它在 2003 年可以正常工作,但在 2008 年,在 '?' 之前有任何 '&'给出“错误请求”。

这些页面对网站受欢迎程度有严重影响,所有访问的 7% 都是从这里开始的,因此在不更改 url 的情况下正确处理它们很重要。 任何想法如何在 iis7 / asp.net 2.0 上处理此类 url?

PS:validateRequest 不起作用

【问题讨论】:

    标签: asp.net iis-7 bad-request


    【解决方案1】:

    尝试在 web.config 中添加以下内容:

    <system.web>
        <httpRuntime requestPathInvalidCharacters="*,:,\" />
    
        ...
    </system.web>
    

    请注意,我已从路径中的无效字符列表中删除了 &amp;

    【讨论】:

    • 无法识别的属性 'requestPathInvalidCharacters' :(
    • msdn 说它只适用于 dotNet 4.0,我在 2.0 中有应用
    【解决方案2】:

    Here's a link 可能会让您到达您想去的地方,但如果您阅读详细信息,我会亲自将其添加到“这样做风险自负”类别...take Microsoft's word for at least one of the "fixes"

    重要如果启用此修复程序,则会增加应用程序的攻击面。除非应用程序需要,否则不应启用此修复。

    DWORD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET VerificationCompatibility = 1

    其他的风险应该是不言自明的,只是通过设置名称(例如AllowRestrictedCharactersValidateRequest=False):

    也就是说,您应该考虑更新那些“旧版”网址并执行 301 永久重定向以说明您的 SEO/受欢迎程度...

    【讨论】:

      猜你喜欢
      • 2022-10-15
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      相关资源
      最近更新 更多