CA5363:請勿停用要求驗證
屬性 | 值 |
---|---|
規則識別碼 | CA5363 |
職稱 | 請勿停用要求驗證 |
類別 | 安全性 |
修正程式是中斷或非中斷 | 不中斷 |
預設在 .NET 9 中啟用 | No |
原因
ValidateInput
屬性會針對類別或方法設定為 false
。
檔案描述
要求驗證是 ASP.NET 中的一項功能,會檢查 HTTP 要求,並判斷它們是否包含可能導致插入式攻擊的潛在危險內容,包括跨網站腳本處理。
如何修正違規
將 ValidateInput
屬性設定為 true
或完全刪除。 或者,使用 AllowHTMLAttribute
來允許輸入中特定部分的 HTML。
隱藏警告的時機
如果傳入 HTTP 要求中的所有承載都是從信任的實體來源,而且無法在傳輸期間遭到敵人竄改,您可以隱藏此違規。
隱藏警告
如果您只想要隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。
#pragma warning disable CA5363
// The code that's violating the rule is on this line.
#pragma warning restore CA5363
若要停用檔案、資料夾或項目的規則,請在組態檔中將其嚴重性設定為 。none
[*.{cs,vb}]
dotnet_diagnostic.CA5363.severity = none
如需詳細資訊,請參閱 如何隱藏程式代碼分析警告。
虛擬程式代碼範例
違規
下列虛擬程式代碼範例說明此規則偵測到的模式。 這會停用輸入驗證。
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(false)]
public void TestActionMethod()
{
}
}
解決方案
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(true)]
public void TestActionMethod()
{
}
}