2016-03-24 3 views
1

Я пытаюсь использовать OWASP ESAPI для проверки строк в проекте весеннего mvc.ESAPI с пружиной mvc

До сих пор я сделал:

1-

<dependency> 
    <groupId>org.owasp.esapi</groupId> 
    <artifactId>esapi</artifactId> 
    <version>2.1.0.1</version> 
</dependency> 

2- Добавлено ESAPI.properties и validation.properties в ресурсах как: myproject/src/resources/esapi/ESAPI.properties myproject/src/resources/esapi/validation.properties

3- Добавлено собственную проверку на validation.properties

4- В моем application.properties я поставил org.owasp.esapi.resources

org.owasp.esapi.resources=classpath:esapi/ESAPI.properties

И у меня есть следующие строки в методе

boolean isValid = ESAPI.validator().isValidInput("user id", userID, "USERID", 20, false); 

Валидация работает, но я получаю следующие уведомления распечатанных в стандартном выводе:

System property [org.owasp.esapi.opsteam] is not set

System property [org.owasp.esapi.devteam] is not set

Как исправить это?

Я также получить несколько линий, как:

Not found in 'org.owasp.esapi.resources' directory or file not readable: /usr/local/apache-tomcat-8.0.28/bin/ESAPI.properties

Not found in SystemResource Directory/resourceDirectory: .esapi/ESAPI.properties

SUCCESSFULLY LOADED ESAPI.properties via the CLASSPATH from 'esapi/' using current thread context class loader! и ряд других.

Как я могу избавиться от этих строк?

Я также написал тест. После выполнения теста я получаю почти те же комментарии, как и в производстве код для SUCCESS части, за исключением, кроме того, я получаю следующее:

Not found in 'org.owasp.esapi.resources' directory or file not readable: /Users/me/dev/myproject/validation.properties Found in SystemResource Directory/resourceDirectory: /Users/me/dev/myproject/target/classes/esapi/validation.properties Loaded 'validation.properties' properties file

Так проверка достоверности и тестов всех работ, но я получаю все эти уведомления, Я хотел бы избавиться!

Что мне не хватает в конфигурациях или в другом месте?

ответ

1

Это стандартные предупреждения, которые возникают во время начальной загрузки org.owasp.esapi.reference.DefaultSecurityConfiguration, когда она впервые загружена. Поскольку средство регистрации ESAPI настраивается, а DefaultSecurityConfiguration - это поиск ESAPI.properties, который будет указывать, какой регистратор использовать, функция DefaultSecurityConfiguration не может использовать предпочтительный механизм регистрации ESAPI. (Если бы можно было догадаться, но что, если бы это было неправильно?) Поэтому вместо этого используется System.out.println() для печати сообщений на stdout.

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

Суть в том, что вы в значительной степени не можете выбрать то, что все будут довольны. В этом конкретном случае во избежание ситуации catch-22 с еще не настроенной системой регистрации ESAPI (это часть того, что это делается) единственные логические альтернативы должны были выводить на stdout, выводить на stderr или выводить к некоторому предварительно определенному файлу. Последний был быстро уволен, потому что мы не могли принять решение о универсальном месте, где мы могли бы создать указанный файл, который был бы переносимым во всех ОС, и что у нас будет гарантированное разрешение на запись на него. И утверждалось, что stderr был неправильным, потому что это были не действительно сообщения ERROR как таковые. И поскольку другие серверы приложений часто пишут сообщения о запуске в stdout, и большинство операций перенаправляют уже перенаправление в файл где-то, что они знают, что они могут создавать, stdout показался естественным выбором. Оглядываясь назад, алгоритм поиска вашего файла ESAPI.properties -, по общему признанию, слишком сложный, но во многом это связано с проблемами обратной совместимости, и это дает вам максимальную гибкость в плане выбора.

Итак, в итоге вы не можете полностью избавиться от них. Вы можете установить определенные свойства, такие как 2 упомянутых или org.owasp.esapi.resources, и заставить некоторых из них уйти.

Для получения более подробной информации см: https://static.javadoc.io/org.owasp.esapi/esapi/2.1.0.1/org/owasp/esapi/reference/DefaultSecurityConfiguration.html и https://github.com/ESAPI/esapi-java-legacy/tree/master/documentation/ESAPI-configuration-user-guide.md для обсуждения этих свойств и что они означают/делать.

Кевин
Смежные вопросы