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

2018-12-21 13:42:37 +08:00
 jingyulong

今天部署一个 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 友有办法,或者其他好的建议吗?

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

1516 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/519718

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX