2011-08-02 3 views
1

に次のように入れています次のエラーで提出: 要求:私は、私は以下を参照してくださいデバッガでshow-のルックアップの値を分析すると ははなぜASP.net MVCは、私は次のようになります。私の見解では、コードの行を持ってForm.Request

「潜在的に危険のRequest.Form値がクライアントのショーのルックアップ=から検出されました」。書式["show-Lookup"] ルックアップ

ASP.net MVCはこれをどこから取得していますか?これは価値がないはずですか?

答えて

0

は、この属性を追加し、私が提案したい

[ValidateInput(false)] 

ことの一つは、ちょうどあなたが何をしているかがわからない場合は、コードの上に使用していけません。上記のコードでは、サーバーがフォームから受け取った入力を検証することはありません。

つまり、ur形式のユーザーが「alert( 'hacked')」のような名前を入力すると、コントローラはその値をそのまま受け取ります。そして、それをDBに追加して表示すると、その災害がどこに表示されますか。ユーザーは、ajaxリクエストを作成するための完全修飾javascriptを入力することができます。

この問題を解決する別の方法は、目的を解決していないので、ボタンから属性名を削除するだけです。

質問: 私は、デバッガでshow-のルックアップの値を分析すると、私は以下を参照してください。あるRequest.Form [「ショー検索」] ASP.net MVCからこれを得ている検索 ?これは価値がないはずですか?

ボタンに属性名を追加すると、この値が表示されます。属性を追加したため、ブラウザはそのプロパティもサーバーに送信しています。

+2

これは問題を "解決"しますが、それは良いアドバイスではありません。 – GalacticCowboy

+0

@above:はい私はこれについて言及しようとしていました –

+0

はい、うまくいきます、私は別のブログでそのことを読んでいます。しかし、それはなぜそれがそのようなフォームの変数を設定しているのかをまだ説明していません。 – Carl

0

<button></button>がフォームとともに提出されます。異なるブラウザでは、これをやや異なる方法で扱います。IEは、開始タグと終了タグの間にある値(ボタンの「コンテンツ」)を他のブラウザがvalue属性を送信する間に送信します。

ボタンの動作は、指定しない限りブラウザによって異なります。 (9より前の)IEでは、<button>要素は「ボタン」タイプであり、他のブラウザでは「送信」です。 (これもW3C仕様です。)