CA5396: Állítsa a HttpOnly tulajdonságot igazra a HttpCookie esetén

Tulajdonság Érték
Szabályazonosító CA5396
Cím HttpOnly beállítása igaz értékre a HttpCookie esetében
Kategória Biztonság
A javítás romboló vagy nem romboló Nem törhető
Alapértelmezés szerint engedélyezve a .NET 10-ben Nem
Alkalmazandó nyelvek C# és Visual Basic

Ok

System.Web.HttpCookie.HttpOnly beállítás értéke : false. Ennek a tulajdonságnak az alapértelmezett értéke a következő false: .

Szabály leírása

Mélységi védelmi intézkedésként győződjön meg arról, hogy a biztonsági szempontból érzékeny HTTP-cookie-k HttpOnlyként vannak megjelölve. Ez azt jelzi, hogy a webböngészőknek le kell tiltania a szkriptek hozzáférését a cookie-khoz. Az injektált rosszindulatú szkriptek gyakran ellopják a cookie-kat.

Szabálysértések kijavítása

Állítsa a System.Web.HttpCookie.HttpOnly elemet true értékre.

Mikor kell letiltani a figyelmeztetéseket?

  • Ha a globális érték HttpOnly be van állítva, például az alábbi példában:

    <system.web>
        ...
        <httpCookies httpOnlyCookies="true" requireSSL="true" />
    </system.web>
    
  • Ha biztos benne, hogy nincsenek bizalmas adatok a cookie-kban.

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

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

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

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

További információ: Kódelemzési figyelmeztetések letiltása.

Példa

Megsértés:

using System.Web;

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

Megoldás

using System.Web;

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