問題タブ [request-validation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ASP.NET MVC コントローラーの要求検証をオフにできません
これを行うことにより、コントローラー内のすべてのアクションメソッドのリクエスト検証をオフにしようとしています:
私が使用している参考文献では、これは可能であり、この方法で行うように指示されていますが、何らかの理由で機能していません。
テキスト ボックスを使用して HTML (単純な <b> タグであっても) を送信すると、次のエラーが表示されます。
潜在的に危険な Request.Form 値がクライアントから検出されました (text=<b>")。
また、個々のメソッドに属性を付けても機能しません。
コントローラのリクエスト検証を無効にするにはどうすればよいですか?
編集
テストサーバーに組み込まれたVS2008で作業しています。
asp.net-mvc - 検証の要求-ASP.NETMVC2
ASP.NET MVC 2の要求の検証は変更されましたか?より正確には、検証されていませんか?
私は次のことをしました:
Web.configs(AppディレクトリおよびViewsディレクトリ内)
コントローラ/アクション属性
@PageViewDirectiveで
ページは引き続き検証され、HTMLコンテンツが投稿されると例外がスローされます。
アップデート
新しいASP.NETMVC2アプリケーションを作成し、ホームコントローラーのインデックスをこれに変更しました
と私のビューページ
それでも同じ問題で、例外がスローされます。
asp.net-mvc - ASP.NET MVC で ModelStateDictionary に要求検証エラーを追加する方法は?
ASP.NET MVC 2 を使用して構築しているシステムのセキュリティを調査した結果、ASP.NET の要求検証機能を発見しました。これは非常に優れた機能です。しかし、明らかに、ユーザーが HTML を使用してデータを入力するときに、イエロー スクリーン オブ デスをユーザーに提示したくないので、より良い解決策を探しています。
私の考えは、無効なデータを持つすべてのフィールドを見つけてModelStateDictionary
、アクションを呼び出す前にそれらを追加して、UI にエラー メッセージとして自動的に表示されるようにすることです。これを少しグーグルで調べた後、誰もこれを実装していないように見えます。ここで誰かがこれを行う方法について提案がありますか? 私自身の考えは、ここControllerActionInvoker
で説明されているように、コントローラーにカスタムを提供することです。これは、何らかの形でこれをチェックして変更しますが、この最後のビットを行う方法に固執しています。ModelStateDictionary
例外をキャッチするだけHttpRequestValidationException
では、実際には必要な情報がすべて含まれているわけではないため、有用なアプローチとは思えません。
私は自分で質問に答えましたが、よりエレガントで堅牢なソリューションについて聞いてみたいと思っています。
.net-4.0 - 潜在的に危険なRequest.Form値が.Net4のクライアントから検出されました
したがって、このホワイトペーパーでは、.Net 4の重大な変更の1つとして、「潜在的に危険なRequest.Form値がクライアントから検出されました」というエラーメッセージと、Web.configファイルに入力する修正について説明しています。
これには2つの問題があります。これは、tinymceやckeditorなどのwysiswygエディターが必要なWebサイトでは、requestValidationModeを2.0にする必要があることを意味しますか?この場合、どのようなメリットが失われますか?(requestValidationModeを2.0に設定してもメリットがない場合は、何も壊れないようにデフォルトで設定してみませんか?)
2.0 / 3.5では、ページごとにValidateRequestを設定できました。これはもちろん.Net 4.0でも可能ですが、ページレベルで設定するには、サイト全体を変更する必要がありますか?これは完全に逆行しているように見えませんか?
私はこれを正しく理解しましたか/これは聞こえるほどゴミですか、それとも何かを逃しましたか?
asp.net - 潜在的に危険なRequest.Form値はIE8からのみ
私はFacebookスタイルのモダンなボタンコントロールを持っています。そのクライアント側のマークアップは次のようになります。
このボタンは、Visual Studio 2010 Webサーバーを使用するIEとFFの両方で正常に機能しますが、アプリケーションをサーバー(Windows Server 2008 / IIS 7.0)に展開すると、「潜在的に危険なRequest.Form値が検出されました」というエラーが表示されますが、 IEでのみ。IEがRequest.Formコレクションのctl00_uxBtn="<div style =" background-image:... "マークアップを通過しているようです。これは、IISが潜在的なスクリプトインジェクションの脆弱性として正しく解釈します。私が知る限り、FFは通過します。 ctl00_uxBtn = "ctl00 $ uxBtn"これは完全に受け入れられます。IEをよりFFのような動作に強制する方法はありますか?リクエストの検証を無効にしたくありません。
asp.net - リクエストの検証を変更するには?
次のような引用符で囲まれた文字列を含む URL の一部として、アプリケーションに要求を送信する必要があります。
次の質問で説明されているように、これはエラーをスローしています。
ルートパラメータとして引用符を含める方法は? 「パスに不正な文字があります」というメッセージが表示される
Scott Hanselman の提案を実装して、
<httpRuntime requestPathInvalidCharacters="<,>,*,%,:,&,\" />
引用符を含まない値。しかし、これは .net 3.5 では利用できないようです。
誰かがこれを機能させる方法を指摘できますか?
asp.net - URL パラメータの一部として引用符文字を許可することにはどのようなリスクがありますか?
ユーザーが次のようにクエリを送信できるようにする必要があります。
しかし、次の 2 つの質問で概説されているように、リクエストの検証が原因で失敗しています。
ルートパラメータとして引用符を含める方法は? 「パスに不正な文字があります」というメッセージが表示される
現在、引用文字のリクエスト検証を無効にする方法を見つけようとしていますが、これを無効にして実際にサイトを公開する前にリスクを知りたいですか? 引用文字に対してのみ無効にできない限り、リクエストの検証を無効にすることはありません。そのため、現在許可されていない他のすべての文字を禁止するつもりです。
asp.net - リクエストの検証をオフにするための単体テストを行う方法は?
私はこのTDDのことは初めてですが、真剣に取り組んでいるので、ここでフィードバックをもらいたいと思っています。
JavaScriptを縮小するための小さなWebサービスを作成しましたが、すべてが素晴らしく、すべてのテストに合格しました。次に、バグに気づきました。縮小しようとするとalert('<script>');
、がスローされHttpRequestValidationException
ます。
簡単に修正できます。[AllowHtml]
コントローラに追加するだけです。しかし、これが将来起こらないことを単体テストするための良い方法は何でしょうか?
以下は私の最初の考えでした:
ただし、ASP.NETパイプライン全体を起動するのではなく、コントローラーインスタンスを取得してメソッドを実行しているだけなので、これは機能しません。
このための良い単体テストは何でしょうか?たぶん、[AllowHtml]
属性が存在するかどうかを確認するためのコントローラーメソッドのリフレクター?これは非常に構造的であり、リファクタリングに耐えられないようです。機能的なものの方が理にかなっているかもしれません。何か案は?
asp.net - .NET4.0上のASP.NETMVC2:[ValidateInput(false)]で十分ですか?
良い一日!
ASP.NET MVC2アプリケーションを.NET4.0にアップグレードする予定ですが、いくつか質問があります。
[ValidateInput(false)]
HTMLを受け入れるのに十分なアクションを実行しているか、次のように設定する必要があります<httpRuntime requestValidationMode="2.0"/>
:ASP.NET4重大な変更ASP.NET MVCをバージョン3にアップグレードした場合(.NET 4.0へのアップグレードに加えて)、どのように機能しますか?
前もって感謝します!
asp.net - .NET4.0のみがインストールされているIIS7.5でホストされている.NET3.5プロジェクトでASP.NET要求の検証(1ページのみ)を無効にする
ASP.NET Webフォームでの要求の検証に問題があり、IIS 7.5(Windows 7-ローカル開発マシン)で.NET3.5プロジェクトをホストしていることがかなり確実です。
基本的に、外部サイト(完全に自分の制御の及ばない)からポストバックを受け取り、次の例外を受け取ります。
A potentially dangerous Request.QueryString value was detected from the client (DATA="<IDP MSGTYPE="Authen...").
ページ宣言に次のセットがあります。
(さらに、web.config/pageでもオフにしようとしました-無駄になりました。
これは、ここで説明されているように、ASP.NET 4.0で行われた重大な変更に関係している可能性があると思います: http ://www.asp.net/learn/whitepapers/aspnet4/breaking-changes#0.1__Toc256770147
しかし、その構成をweb.configに追加すると、構成エラーが発生します(.NET 2.0アプリケーションプールで実行されているため)。
どちらの見方をしても、現時点では行き詰まっているので、アドバイスやアドバイスをいただければ幸いです。とにかく私はこれを他の方法で回避することができますか?).NET 2.0のインストールを試みることはできますが、それがうまくいくかどうかはわかりません(そして、試すのはかなり壊れやすい方法のようです)。
ありがとう。