Проблема с инъекцией LDAP в checkmarx:

Я пытаюсь разработать какое-то приложение и отсканировать свой код, используя checkmarx, и у меня возникла проблема с инъекцией LDAP в следующем методе.

Update(request.getparameter("userID"))

мы вызываем этот метод и используем request.getparameter() для получения соответствующего значения, checkmarx показывает проблему в request.getparameter("userID"),

Описание проблемы: "Значение этого элемента затем проходит через код без надлежащей очистки или проверки и в конечном итоге используется в запросе LDAP в методе".

так что следование является одним из способов, которые я пытался

String userID = request.getparameter("userID");
if(userID == null && userID.isEmpty){
    throw new ServletException(); 
}
else
    Update(userID);

с учетом вышеуказанных изменений также проблема не решена.

Есть идеи, чтобы решить эту проблему?

1 ответ

Похоже, что Checkmarx правильно помечает ваш код как уязвимый для внедрения LDAP.

Что такое инъекция LDAP?

Неправильная нейтрализация специальных элементов, используемых в запросе LDAP ("Инъекция LDAP")

Программное обеспечение создает весь или часть запроса LDAP, используя входные данные, находящиеся под влиянием извне, от вышестоящего компонента, но не нейтрализует или неправильно нейтрализует специальные элементы, которые могут изменить предполагаемый запрос LDAP, когда он отправляется нижестоящему компоненту.

Цитата взята из CWE-90: Неправильная нейтрализация специальных элементов, используемых в запросе LDAP ("Инъекция LDAP")

Как смягчить?

Защита от внедрения LDAP требует точного кодирования и безопасной конфигурации сервера. Интерфейсные приложения должны выполнять проверку ввода и ограничивать все потенциально вредоносные символы. Разработчики могут использовать регулярные выражения для проверки ненадежного ввода. Следующее регулярное выражение может ограничить область возможных атак, разрешив только цифры и буквы:

/[^0-9a-z]/i

Выполните фильтрацию исходящих данных как дополнительный уровень безопасности. Не выводите информацию, которая не связана с функциональностью приложения. Реализуйте правильный контроль доступа к данным в каталоге LDAP, установите соответствующие разрешения для пользовательских объектов и отключите анонимный доступ к объектам каталога.

Цитата и пример взяты из уязвимости LDAP, связанной с инъекцией | CWE-90 Слабость | Эксплуатация и восстановление

Другие вопросы по тегам