Существует ли проверка в библиотеке ESAPI, которая может гарантировать, что уязвимость CWE-93 не обнаруживается при сканировании SAST veracode? - PullRequest
0 голосов
/ 01 июля 2019

Я сделал SAST-сканирование своего кода на платформе Veracode, и у меня появилась эта уязвимость в функциональности почты Java, которую я использую для отправки писем из своего приложения. Следующая уязвимость, которая наступает, - неправильная нейтрализация последовательностей CRLF («инъекция CRLF») (CWE ID 93).

message.setSubject(subjectOfEmail);

Я слышал, что мы можем использовать библиотеку ESAPI, но не могу найти для этого подходящую функцию проверки. Кто-нибудь, помогите мне решить эту проблему, чтобы она больше не появлялась при сканировании.

Ответы [ 3 ]

1 голос
/ 02 июля 2019

Посетите эту страницу в Справочном центре Veracode, где перечислены библиотеки проверки, которые исправят некоторые классы ошибок:

https://help.veracode.com/reader/DGHxSJy3Gn3gtuSIN2jkRQ/y52kZojXR27Y8XY51KtvvA

Существует целый ряд библиотек ESAPI, которые исправят недостатки CWSE 93, включая

org.owasp.esapi.Encoder.encodeForHTML
0 голосов
/ 10 июля 2019

Используйте метод ESAPI decodeForHTML (), как показано ниже:

ESAPI.encoder (). DecodeForHTML (subjectOfEmail)

0 голосов
/ 06 июля 2019

Если все, что вы хотите предотвратить в этом случае, - это проблема с внедрением заголовка (с чем связан CWE ID 93), то посмотрите на класс org.owasp.esapi.StringUtilities ESAPI. В частности, статический метод stripControls(), вероятно, именно то, что вам нужно. Использование Encoder.encodeForHTML(), вероятно, будет кодировать больше, чем вы хотите, поскольку оно предполагает контекст HTML. (Конечно, вы можете захотеть, чтобы, если вас беспокоит предотвращение XSS в заголовках Subject определенных веб-почтовых клиентов. Обычно эти клиенты уже должны иметь встроенную защиту, поэтому, если вы закодируете ее, она может быть закодирована дважды и не правильно рендерится.)

Имейте в виду, что если вы используете StringUtilities.stripControls(), то ваш движок SAST Veracode все равно может пометить ваш код для CWE, хотя я не уверен, что он распознает метод этого класса как удаление флага taint в данном конкретном случае. (Но вы всегда можете упомянуть это как смягчающий комментарий.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...