ПРЕДУПРЕЖДЕНИЕ Esapi: [ОШИБКА БЕЗОПАСНОСТИ Anonymous:null@unknown -> /ExampleApplication/IntrusionDetector]

У меня есть эта строка кода:

ESAPI.validator().isValidInput("user id", userID, "USERID", 8, false);

Я написал для него тест, когда я запускаю тест, и тест не проходит, я получаю следующее предупреждение:

WARNING: [SECURITY FAILURE Anonymous:null@unknown -> /ExampleApplication/IntrusionDetector] Input exceeds maximum allowed length of 8 by 5 characters: context=user id, type=USERID, orig=userid1234567, input=userid1234567

Что означает это предупреждение и как от него избавиться?


person mnish    schedule 24.03.2016    source источник


Ответы (1)


Краткий ответ: вы избавляетесь от предупреждения, передавая действительный ввод.

Вы звоните Validator.isValidInput(строковый контекст, ввод строки, тип строки, int maxLength, логическое значение allowNull)

У вас параметр «maxLength» (4-й параметр) установлен на 8. Таким образом, вы сообщаете этому методу, что он должен возвращать true, только если параметр «input» (ваш 2-й параметр в этом методе) имеет длину ‹= maxLength.

Ваш зарегистрированный вывод показывает, что вы передаете ему значение «userID», для которого установлено значение «userid1234567», длина которого составляет 13 символов. Таким образом, сообщение журнала правильно сообщает вам, что ваш ввод превышает максимально допустимую длину 8 на 5 символов. Другими словами, он делает именно то, для чего был разработан.

person Kevin W. Wall    schedule 25.03.2016
comment
извините, я должен был написать свой вопрос более конкретно. Я понимаю, что я должен получить warrend так или иначе, это не проблема. Я говорил о части SECURITY FAILURE Anonymous:null@unknown -> /ExampleApplication/IntrusionDetector. Кроме того, после этого предупреждения я также получаю исключение: org.owasp.esapi.errors.ValidationException: issuer id: Invalid input. The maximum length of 11 characters was exceeded. Можно ли изменить конфигурацию, чтобы я видел только исключение? - person mnish; 25.03.2016
comment
Ну, во-первых, если там указано максимальная длина 11 символов, это должно быть из другого теста, поскольку тот, который вы изначально проиллюстрировали, имел максимальную длину 8 символов. Но точка взята. Единственный известный мне способ избавиться от записей журнала InstrusionDetector — отключить его. Комментирование строки ESAPI.IntrusionDetector=org.owasp.esapi.reference.DefaultIntrusionDetector с использованием ведущего «#» должно сделать это. - person Kevin W. Wall; 26.03.2016
comment
Конечно, OTOH полностью отключит IntrusionDetector, а не просто остановит его для этой категории. Вы можете заменить DefaultIntrusionDetector на AppSensor (см. owasp.org/index.php/AppSensor_GettingStarted). ). AppSensor позволяет гораздо более детально настраивать то, о чем следует предупреждать, пороговые значения и т. д. См. owasp.org/ index.php/AppSensor_Developer_Guide для получения подробной информации. - person Kevin W. Wall; 26.03.2016
comment
@KevinW.Wall Я знаю, что это очень старый ответ, и я столкнулся с той же проблемой, но не поможет ли изменение конфигурации уровня журнала скрыть предупреждения, не отключая весь класс? Нравится <logger name="org.owasp.esapi" level="error" additivity="false"> - person Federico Piazza; 10.12.2019
comment
@FedericoPiazza, да, будет, если вы захотите отключить все предупреждения от ведения журнала ESAPI. Хотя мне это кажется немного похожим на выплескивание ребенка вместе с водой из ванны. В следующем выпуске ESAPI (2.2.1.0, ориентировочной даты пока нет, но я надеюсь, что он выйдет по крайней мере до конца мая) будут добавлены некоторые дополнительные свойства в файле ESAPI.properties, которые помогут вам контролировать, будет ли это появляется вывод. Он уже находится в ветке «Разработка». - person Kevin W. Wall; 29.02.2020
comment
@KevinW.Wall очень мило, с нетерпением жду этого релиза - person Federico Piazza; 01.03.2020
comment
@KevinW.Wall Я знаю, что это старая ветка о ESAPI Intrusion Detector. Мой вопрос заключается в том, не повлияет ли отключение IntrusionDetector на безопасность других функций проверки ESAPI по умолчанию. Насколько я понимаю, IntrusionDetector используется для целей ведения журнала, но фактические проверки выполняется на других уровнях ESAPI (например, проверка XSS выполняется ESAPI SecurityWrapperRequest). Чтобы добавить больше контекста к моему вопросу, я использую ESAPI 2.1.0.1 в устаревшем проекте и хотел бы отключить IntrusionDetector, поскольку он замедляет работу приложения. Спасибо. - person Cypher; 24.11.2020
comment
@Cypher - правильно. Отключение детектора вторжений не остановит проверки безопасности или не изменит исключения, когда они будут выброшены, но предотвратит автоматическую регистрацию многих из этих исключений. Если вы хотите отключить его, проще всего установить для свойства ESAPI «IntrusionDetector.Disable» значение «true». - person Kevin W. Wall; 26.11.2020