LDAP injection (ARCH317)
Anahtar dotnet.security.ldap-injection · Önem error · Kategori security · CWE CWE-90
Kullanıcı girdisini bir LDAP filtresine birleştirmek saldırganın filtre mantığını değiştirmesine ve yetkilendirmeyi atlamasına olanak tanır. Girdiyi escape edin.
Hatalı
Bölüm başlığı “Hatalı”var search = new DirectorySearcher(entry){ Filter = "(uid=" + userName + ")"};var safe = Regex.Replace(userName, @"[\\*()\u0000/]", m => "\\" + ((byte)m.Value[0]).ToString("X2"));var search = new DirectorySearcher(entry) { Filter = "(uid=" + safe + ")" };Düzeltme
Bölüm başlığı “Düzeltme”LDAP filtrelerine yerleştirmeden önce tüm girdileri RFC 4515 kurallarına göre escape edin.