Как устранить эти ошибки: неправильная нейтрализация специальных элементов, используемых в запросе LDAP ('LDAP injection') (CWE ID90)(2 дефекта)недостаточная проверка ввода(2 дефекта) ?
Привет ребята,
Я все вместе образовывает развитый службы Windows .Net с использованием языка C#. Я дал свой exe-файл для сканирования veracode после того, как этот отчет показывает некоторые ошибки, как показано ниже .
К вашему сведению: я использую запрос LDAP, как показано ниже: Как устранить эти ошибки. это служба windows, а не веб-приложение.
строка s1 ="xyz"
mySearcher.Фильтр = "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(sAMAccountName=" +s1+ "))";
SearchResult sresult = mySearcher.Финдон();
=>недостаточная проверка входных данных(2 дефекта)
Описание:
Слабые места в этой категории связаны с отсутствием или неправильным механизмом защиты, который не может должным образом проверить входные данные
это может повлиять на поток управления или поток данных программы.
Рекомендации:
Проверка входных данных из ненадежных источников перед их использованием. К ненадежным источникам данных могут относиться HTTP-запросы, файловые системы,
базы данных и любые внешние системы, предоставляющие данные приложению. В случае HTTP-запросов проверьте все части
запрос, включая заголовки, поля форм, файлы cookie и компоненты URL-адресов, используемые для передачи информации из
браузер для приложения на стороне сервера.
Дублируйте все проверки на стороне клиента на стороне сервера. Это должно быть просто реализовать с точки зрения времени и сложности, и будет
значительно уменьшите вероятность использования небезопасных значений параметров в приложении.
=>неправильная нейтрализация специальных элементов, используемых в запросе LDAP ('LDAP Injection') (CWE ID
90)(2 дефекта)
Описание
Программное обеспечение недостаточно дезинфицирует специальные элементы, используемые в запросах LDAP или ответах, позволяя
злоумышленники изменяют синтаксис, содержимое или команды запроса LDAP перед его выполнением.
Попытка исправить: 3 - сложная ошибка реализации. Исправление-это примерно 51-500 строк кода. До 5 дней, чтобы исправить.
Рекомендации
Проверьте все ненадежные входные данные, чтобы убедиться, что они соответствуют ожидаемому формату, используя централизованные процедуры проверки данных
когда это возможно. При использовании черных списков убедитесь, что процедура очистки выполняет достаточное количество итераций, чтобы
удалите все экземпляры запрещенных символов.
Что я уже пробовал:
mySearcher.Фильтр = "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(sAMAccountName=" + Encoder.LdapFilterEncode(Encoder.HtmlEncode(s1)) + "))";