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 9'da 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 none
olarak 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()
{
}
}