Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
| Özellik | Değer |
|---|---|
| Kural Kimliği | CA5396 |
| Başlık | HttpCookie için HttpOnly'yi true olarak ayarla |
| Kategori | Güvenlik |
| Düzeltme bozucu ya da bozmayan olabilir | Kesintisiz |
| .NET 10'da varsayılan olarak etkin | Hayır |
| Geçerli diller | C# ve Visual Basic |
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 ayarlandığından emin olun. Bu, web tarayıcılarının komut dosyalarının tanımlama bilgilerine erişimine izin vermemesi gerektiğini belirtir. Eklenen kötü amaçlı kodlar, 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 veri olmadığından emin iseniz.
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;
}
}