7

我正在使用 N2Cms 并正在研究我遇到的一些问题。它在左侧有一个导航面板,在您展开树时通过 ajax 加载。

获取节点子节点的代码调用带有一些参数的 ashx 文件。一个参数用于路径,其中包含斜线。出于这个原因,它已被编码。

.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=%252fhome%252fhelp-and-advice%252f

我在我的开发服务器(运行 iis 7.5)上对此没有任何问题,但是当部署到我们的测试服务器(iis7)时,导航无法正常工作。

对此进行调查表明,上面的 url 给出了 500 错误。

如果我将网址解码为

.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=/home/help-and-advice/

它没有问题。

不幸的是,我无法将生成它的代码更改为 n2cms 源代码的一部分,我假设它已被编码是有充分理由的。

有谁知道我可以在我的 web.config 中做些什么来允许编码参数或我可以在 iis 服务器上更改的东西?

编辑: 所以这个链接似乎表明它是为了安全而故意这样做的。 http://msdn.microsoft.com/en-us/library/ee656542.aspx

建议的解决方案是升级到 .net 4.0 并将以下内容添加到 web.config

<configuration>
 <uri>
   <schemeSettings>
    <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
   </schemeSettings>
 </uri>
</configuration>

不幸的是,这似乎没有效果。

任何想法为什么这不起作用?

4

3 回答 3

1

看来您的网址经过 2 html 编码。您的 IIS7 服务器上是否有一些 url 重写模块处于活动状态?

于 2012-10-18T21:48:08.220 回答
1

这可能是 URLScan 实用程序。URL 扫描根据其配置文件中的规则阻止 URL。它还有自己的日志文件,因此您可以通过查看 URLScan 日志来确定。

谷歌搜索 URLSCan 默认位置。

于 2012-10-18T20:25:16.973 回答
0

好的,我得到了这个。

当试图在 IIS 日志中查找错误并失败时,然后查看许多有关失败的跟踪请求的帖子,但在 iis 中仍然没有收到任何错误,我认为该请求只是没有到达 IIS。

回顾服务器错误,那里也有一个线索。
500内部服务器错误。该请求被 HTTP 过滤器拒绝。

是防火墙!!我们已经禁用了 HTTP 过滤器,现在它可以工作了 :)

我现在需要调查这个 HTTP 过滤器应该保护我们免受什么侵害,现在我们已经关闭它是否安全。

于 2012-10-23T14:42:59.697 回答