CA5395: Eylem yöntemleri için HttpVerb özniteliğini kaçırma

Özellik Değer
Kural Kimliği CA5395
Başlık Eylem metotları için HttpVerb özniteliği eksik
Kategori Güvenlik
Hataya neden olan veya bozulmayan düzeltme Hataya neden olmayan
.NET 8'de varsayılan olarak etkin Hayır

Neden

Eylem yöntemleri için http isteğinin türünü açıkça belirtmiyor.

Kural açıklaması

Verileri oluşturan, düzenleyen, silen veya başka bir şekilde değiştiren tüm eylem yöntemlerinin siteler arası istek sahteciliği saldırılarına karşı koruma özniteliğiyle korunması gerekir. GET işlemi gerçekleştirmek, yan etkisi olmayan ve kalıcı verilerinizi değiştirmeyen güvenli bir işlem olmalıdır.

İhlalleri düzeltme

Eylem yöntemlerini özniteliğiyle HttpVerb işaretleyin.

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

Aşağıdakiler durumunda bu kuraldan gelen uyarıları engellemek güvenlidir:

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 CA5395
// The code that's violating the rule is on this line.
#pragma warning restore CA5395

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.CA5395.severity = none

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

Sahte kod örnekleri

Ihlal

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

class ExampleController : Controller
{
    public IActionResult ExampleAction()
    {
        return null;
    }
}

Çözüm

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

class ExampleController : Controller
{
    [HttpGet]
    public IActionResult ExampleAction()
    {
        return null;
    }
}