CA5396: HttpCookie için HttpOnly değerini true olarak ayarlayın

Özellik Değer
Kural Kimliği CA5396
Başlık HttpCookie için HttpOnly'yi true olarak ayarla
Kategori Güvenlik
Hataya neden olan veya bozulmayan düzeltme Hataya neden olmayan
.NET 8'de varsayılan olarak etkin Hayır

Neden

System.Web.HttpCookie.HttpOnly olarak ayarlanır false. Bu özelliğin varsayılan değeridir false.

Kural açıklaması

Derinlemesine savunma önlemi olarak, güvenlik duyarlı HTTP tanımlama bilgilerinin HttpOnly olarak işaretlendiğinden emin olun. Bu, web tarayıcılarının betiklerin tanımlama bilgilerine erişmesine izin vermemesi gerektiğini gösterir. Eklenen kötü amaçlı betikler, tanımlama bilgilerini çalmanın yaygın bir yoludur.

İhlalleri düzeltme

System.Web.HttpCookie.HttpOnly seçeneğini true olarak ayarlayın.

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

  • Genel değeri HttpOnly aşağıdaki örnekte olduğu gibi ayarlanmışsa:

    <system.web>
        ...
        <httpCookies httpOnlyCookies="true" requireSSL="true" />
    </system.web>
    
  • Tanımlama bilgilerinde hassas veriler olmadığından eminseniz.

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

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

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

Örnek

Ihlal:

using System.Web;

class ExampleClass
{
    public void ExampleMethod()
    {
        HttpCookie httpCookie = new HttpCookie("cookieName");
        httpCookie.HttpOnly = false;
    }
}

Çözüm:

using System.Web;

class ExampleClass
{
    public void ExampleMethod()
    {
        HttpCookie httpCookie = new HttpCookie("cookieName");
        httpCookie.HttpOnly = true;
    }
}