İçeriğe geç

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.

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 + ")" };

LDAP filtrelerine yerleştirmeden önce tüm girdileri RFC 4515 kurallarına göre escape edin.