V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jingyulong
V2EX  ›  程序员

请求筛选模块被配置为拒绝包含双重转义序列的请求

  •  
  •   jingyulong · 2018-12-21 13:42:37 +08:00 · 1512 次点击
    这是一个创建于 1947 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天部署一个 node 的网站,网站部署在 IIS 上。后面打开有一些报错。 F12 查看了下,请求 URL: http://localhost:80/static/js/++5l.1e05875d.js 返回 404. 服务器上访问这个地址,出现如下提示:

    HTTP 错误 404.11 - Not Found
    请求筛选模块被配置为拒绝包含双重转义序列的请求。
    
    最可能的原因:
    该请求包含双重转义序列,而 Web 服务器上配置的请求筛选拒绝双重转义序列。
    

    后面谷歌了一下,结果大部分都是建议把 requestFiltering@allowDoubleEscaping 设置打开。

    微软官方也不建议这么做,可以查看: https://support.microsoft.com/zh-cn/help/942076/error-message-when-you-visit-a-web-site-that-is-hosted-on-iis-7-0-http

    后面看到,其实这个设置是来防止通过 url 进行代码注入的,HTML injection, JavaScript injection or SQL injection 等。

    所以,最好的解决方案是把请求中的'+'号给编码。但是这个是用 webpack 打包,自动生成的,不知道去哪里修改。有 V 友有办法,或者其他好的建议吗?

    第一次弄这个,不熟,轻喷。。。。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2759 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:45 · PVG 13:45 · LAX 22:45 · JFK 01:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.