2011-01-07 20 views
10

私はMVC.NETサイトでwysiwygエディタとしてCKEditor/CKFinderを使用しています。潜在的に危険なRequest.Form値がクライアントから検出されました

私は [ValidateInput(false)]を設定しているし、それをローカルにデバッグするとき、それは動作しますが、私はサイトを公開しているとき、私は次のエラーが表示され

A potentially dangerous Request.Form value was detected from the client (message="<p> 
<em>Testing</e..."). 

公開されたサイトは、ローカルサイトとは異なり、なぜ誰もが説明することができ、特に私が[ValidateInput(false)]を設定したときは?

* アップデート: * .Net 3.5を使用しているので、[ValidateInput(false)]は問題ありませんか?

+0

web.configファイルを追加するには、すべての検証を無効にしないだろうアクションの前に '[ValidateInput(false)]'を指定しない限り、 – Vishal

+1

公開サイトで使用している.NET AppPoolが.NET 4.0で実行されていないことを確認できますか?私はそれが推測している。 –

+0

ありがとう、明らかにホスは.Net 4.0を走らせました。 – Dofs

答えて

7

あなたのweb.configファイルにこれを追加します。

<httpRuntime requestValidationMode="2.0" /> 
+0

申し訳ありませんすべてのページで無効にしたくないということを忘れてしまいました。また、私の質問は、なぜそれが公開されたときよりもデバッグ時に異なっていたかについてでした。 – Dofs

+0

これはすべてのページでそれを有効にしません。あなたの属性[ValidateInput(false)]を動作させるだけです。 http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx –

+0

MVC.Net 3.5を使用していますので、[ValidateInput(false)]をそのまま使用しないでください。 – Dofs

21

あなたはhtmlEncodeOutputプロパティを設定しようとしたことがありますか?

> CKEDITOR.replace('editor1', { 
> htmlEncodeOutput: true }); 

これは出力をエンコードする必要があり、requestValidationModeの設定を避ける必要があります。それがここにあるため

ドキュメント:ckEditor documentation

+6

+1私の意見では、これを無効にするよりも優れています。 – ashes999

+1

私は@ ashes999に同意します。将来の読者に役立つ2つの兆候** 1 ** 'editor1'はckeditorコントロールのIDです** 2 ** POST後に受け取った値を_System.Net.WebUtility.HtmlDecode_でデコードすることを忘れないでくださいおそらく同じエラーが続くでしょう。 –

+0

私はCKEDITOR.replace()を使用していません、私は