7

私は N2Cms を使用しており、いくつかの問題を調べています。左側にナビゲーション パネルがあり、ツリーを展開すると ajax を介して読み込まれます。

ノードの子を取得するコードは、いくつかのパラメーターを使用して ashx ファイルを呼び出します。1 つのパラメーターはパス用で、その中にスラッシュが含まれています。このため、暗号化されています。

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

私の開発サーバー (iis 7.5 を実行) では問題はありませんでしたが、テスト サーバー (iis7) にデプロイすると、ナビゲーションが機能しません。

これを調査すると、上記の URL で 500 エラーが発生することがわかりました。

URLをデコードすると

.../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

あなたのURLは2つのhtmlエンコードを通過しているようです。IIS7 サーバーでアクティブな URL 書き換えモジュールがありますか?

于 2012-10-18T21:48:08.220 に答える
1

これは、URLScan ユーティリティである可能性があります。URL スキャンは、構成ファイルのルールに基づいて URL をブロックします。また、独自のログ ファイルがあるため、URLScan ログを見れば確実にわかります。

URLSCan のデフォルトの場所を Google 検索します。

于 2012-10-18T20:25:16.973 に答える
0

OK、私はこれでどこかに行きます。

IIS ログでエラーを見つけようとして失敗し、失敗したトレース要求に関する多くの投稿を調べても、iis でエラーが発生しない場合、要求が IIS に到達していないことがわかりました。

サーバーエラーを振り返ってみると、そこにも手がかりがありました。
500内部サーバーエラー。要求は HTTP フィルターによって拒否されました。

ファイアウォールです!! HTTP フィルターを無効にしましたが、機能するようになりました :)

私は今、この HTTP フィルターが私たちを保護していると思われるものを調査する必要があります。

于 2012-10-23T14:42:59.697 に答える