CA5363: İstek doğrulamayı devre dışı bırakma

Özellik Değer
Kural Kimliği CA5363
Başlık İstek doğrulamayı devre dışı bırakmayın
Kategori Güvenlik
Hataya neden olan veya bozulmayan düzeltme Hataya neden olmayan
.NET 8'de varsayılan olarak etkin Hayır

Neden

özniteliği ValidateInput bir sınıf veya yöntem için olarak false ayarlanır.

Kural açıklaması

İstek doğrulama, ASP.NET HTTP isteklerini inceleyen ve siteler arası betik oluşturma da dahil olmak üzere ekleme saldırılarına yol açabilecek tehlikeli olabilecek içerik içerip içermediklerini belirleyen bir özelliktir.

İhlalleri düzeltme

özniteliğini ValidateInput olarak true ayarlayın veya tamamen silin. Alternatif olarak, girişin belirli bölümlerinde HTML'ye izin vermek için kullanın AllowHTMLAttribute .

Uyarıların ne zaman bastırılması gerekiyor?

Gelen HTTP isteğindeki yükün tümü güvenilir bir varlıktan geliyorsa ve aktarım öncesinde veya sırasında bir saldırgan tarafından değiştirilemediyse bu ihlali gizleyebilirsiniz.

Uyarıyı gizleme

Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.

#pragma warning disable CA5363
// The code that's violating the rule is on this line.
#pragma warning restore CA5363

Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini noneolarak ayarlayın.

[*.{cs,vb}]
dotnet_diagnostic.CA5363.severity = none

Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.

Sahte kod örnekleri

Ihlal

Aşağıdaki sahte kod örneği, bu kural tarafından algılanan deseni gösterir. Bu, giriş doğrulamayı devre dışı bırakır.

using System.Web.Mvc;

class TestControllerClass
{
    [ValidateInput(false)]
    public void TestActionMethod()
    {
    }
}

Çözüm

using System.Web.Mvc;

class TestControllerClass
{
    [ValidateInput(true)]
    public void TestActionMethod()
    {
    }
}