CA5365: HTTP ヘッダーのチェックを無効にしません
プロパティ | 値 |
---|---|
ルール ID | CA5365 |
Title | HTTP ヘッダーのチェックを無効にしません |
[カテゴリ] | Security |
修正が中断か中断なしであるか | なし |
.NET 8 では既定で有効 | いいえ |
原因
EnableHeaderChecking を false
に設定します。
規則の説明
HTTP ヘッダーのチェックでは、応答ヘッダーに含まれる復帰 \r
や改行文字 \n
のエンコードを有効にします。 このエンコードは、ヘッダーに含まれる信頼されていないデータをエコーするアプリケーションを悪用するインジェクション攻撃を回避するのに役立ちます。
違反の修正方法
EnableHeaderChecking を true
に設定します。 または、既定値が true
であるため、false
への割り当てを削除します。
どのようなときに警告を抑制するか
HTTP ヘッダーの継続では、ヘッダーが複数の行にまたがり、改行を含める必要があります。 ヘッダーの継続を使用する必要がある場合は、EnableHeaderChecking プロパティを false
に設定する必要があります。 ヘッダーのチェックはパフォーマンスに影響します。 既に正しいチェックが行われていることがわかっている場合は、この機能をオフにすると、アプリケーションのパフォーマンスが向上することがあります。 この機能を無効にする前に、この領域で適切な予防措置を講じていることを確認してください。
警告を抑制する
単一の違反を抑制するだけの場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、規則をもう一度有効にします。
#pragma warning disable CA5365
// The code that's violating the rule is on this line.
#pragma warning restore CA5365
ファイル、フォルダー、またはプロジェクトの規則を無効にするには、構成ファイルでその重要度を none
に設定します。
[*.{cs,vb}]
dotnet_diagnostic.CA5365.severity = none
詳細については、「コード分析の警告を抑制する方法」を参照してください。
疑似コードの例
using System;
using System.Web.Configuration;
class TestClass
{
public void TestMethod()
{
HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
httpRuntimeSection.EnableHeaderChecking = false;
}
}
解決策
using System;
using System.Web.Configuration;
class TestClass
{
public void TestMethod()
{
HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
httpRuntimeSection.EnableHeaderChecking = true;
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET