LDAP-инъекция
Внедрение спецсимволов в LDAP-фильтры для обхода аутентификации или чтения каталога.
Сигнатура
LDAP InjectionLDAP-инъекция происходит при построении фильтров поиска в каталоге (например Active Directory) из непроверенного ввода. Спецсимволы *, (, ), &, | позволяют изменить логику фильтра и, например, обойти проверку пароля.
Как защититься: экранируйте спецсимволы LDAP по RFC 4515, используйте библиотеки с безопасным построением фильтров, применяйте белые списки символов.
# Опасно: ввод напрямую в фильтр
user = request.get("user")
filt = "(uid=" + user + ")" # ввод *)(uid=* раскрывает каталог
# Безопасно: экранирование спецсимволов
from ldap3.utils.conv import escape_filter_chars
user = escape_filter_chars(request.get("user"))
filt = "(uid=" + user + ")"