[解決済み] url 内の二重エスケープシーケンス : リクエストフィルタリングモジュールは、二重エスケープシーケンスを含むリクエストを拒否するように設定されています。
質問
ASP.NET MVCアプリケーションで、以下のようなURLを実装しようとしています。
/製品/タグ/家族用
デフォルトの構成でアプリケーションを実行しようとすると、404.11 Response Code というメッセージが表示されます。
HTTP Error 404.11 - 見つかりません。
リクエストフィルタリングモジュールは、次のようなリクエストを拒否するように設定されています。 が含まれるリクエストを拒否するように設定されています。
web.configに以下のコードを実装することで、このエラーを回避することができます。
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
</system.webServer>
ということで、今は
404.11
.
私が疑問に思っているのは、この実装でどのようなセキュリティホールを開いているかということです。
ちなみに、私のアプリケーションは
.Net Framework 4.0
の下で動作しており
IIS 7.5
.
どのように解決するのですか?
セキュリティホールは、HTML インジェクション、JavaScript インジェクション、SQL インジェクションなどのコードインジェクションに関係します。
デフォルトの設定は、一般的なインジェクションの戦略が機能しないようにすることで、攻撃から半効率的に保護します。デフォルトのセキュリティを削除すればするほど、URL、GETリクエストのクエリ文字列、POSTリクエストのデータ、HTTPヘッダーなどを通じて提供される入力で何をするかを考えなければならなくなります...。
たとえば、動的な SQL クエリを
id
パラメータに基づいて動的な SQL クエリを構築する場合、次のようになります。
public ActionResult Tags(string id)
{
var sql = "SELECT * FROM Tags Where tagName = '" + id + "'";
// DO STUFF...
}
(...というのは ではない は良い考えです)、.NETフレームワークによって設置されたデフォルトの保護は、ユーザーがこのURLを要求するような、より危険なシナリオのいくつかを止めるかもしれません。
/product/tags/1%27;drop%20table%20Tags;%20--
全体の考え方は、URLやアクションメソッドへの他の入力のすべての部分を、可能性のある脅威として扱うことです。デフォルトのセキュリティ設定は、そのような保護の一部を提供します。デフォルトのセキュリティ設定を変更するたびに、手動で処理する必要がある潜在的な悪意が少しづつ開放されます。
このような方法で SQL クエリを構築していないことを前提としています。しかし、より巧妙なものは、ユーザーの入力をデータベースに保存し、後でそれらを表示するときに発生します。悪意のあるユーザーは、JavaScript や HTML をデータベースに保存し、それがエンコードされていない状態で出力される可能性があり、その結果、システムの他のユーザーを脅かすことになります。
関連
-
ASP.NET Core Web API チュートリアル プロジェクト構成図
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
[解決済み] コンフィグエラーです。このコンフィギュレーションセクションは、このパスでは使用できません
-
ajaxでポップアップアラートボックス
-
[解決済み] クライアントから危険な可能性のあるRequest.Formの値が検出された
-
[解決済み] IISのAppPoolIdentityとファイルシステムの書き込みアクセス権
-
[解決済み] [Solved] ASP.NET MS11-100: 投稿されたフォームの値の最大数の制限を変更するにはどうしたらいいですか?
-
[解決済み] WatiNかSeleniumか?[クローズド]
-
[解決済み] ダブルエスケープを有効にすることは危険か?
-
[解決済み] 「IIS7.5でPUTメソッドに「405メソッドは許可されていません」と表示される。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NET6新機能 - 暗黙の名前空間参照
-
ASP.NET CoreでCAPの取引詳細を自動で有効にする
-
ネットパフォーマンスチューニング - ArrayPool 詳細
-
デバッグエラー蓄積
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] カタナ」と「オウイン」をわかりやすく説明すると?
-
[解決済み] [Solved] ASP.NET MS11-100: 投稿されたフォームの値の最大数の制限を変更するにはどうしたらいいですか?
-
[解決済み] ASP.NET Web APIでのユーザー認証
-
[解決済み] フレームワークのランタイムターゲットが見つからない .NETCoreApp=v1 互換ランタイムの1つと互換性がある
-
[解決済み] ASP.NETの場合。Session.SessionIDがリクエスト間で変更される