Должен ли я использовать ESAPI или нет, и есть ли замена? - PullRequest
0 голосов
/ 04 мая 2018

Я заметил, что ESAPI сильно замедляет мое приложение. Мне, конечно, нравится эта идея, но я унаследовал приложение, которое использует его, и я продолжаю получать сообщение об ошибке. Я использую Spring boot 1.5.7 и стараюсь поддерживать как можно больше других зависимостей от самых современных. Так что мне интересно, если это вообще нужно?

Но после долгих исследований похоже, что ESAPI - конченый человек. Лично я никогда не понимал, что он должен был делать, кроме того, что OWASP говорит, что это хорошо. Теперь я уважаю OWASP и хотел бы максимально обезопасить свое приложение.

Итак, мой вопрос: после удаления ESAPI я обнаружил несколько строк кода, которые используются следующим образом:

 ESAPI.encoder().encodeForJavaScript(ControllerHelper.getJavascriptStuff());

Что я должен использовать в качестве замены? а почему?

1 Ответ

0 голосов
/ 07 мая 2018

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

Итак, основной вопрос таков:

Так что мой вопрос, после удаления ESAPI я нашел несколько строк код, который используется так:

ESAPI.encoder().encodeForJavaScript(ControllerHelper.getJavascriptStuff()); Что я должен использовать в качестве замены? а почему?

IF ALL вам нужен кодер, используйте облегченный OWASP Encoder Project.

Однако этот проект также не даст вам декодер.

почему часть. Часть, которая заслуживает вики.

Во всех разработках приложений ответственность за обеспечение того, чтобы данные всегда обрабатывались только как данные, является обязанностью программиста. В представленном здесь случае разработчик использовал кодировщик, чтобы гарантировать, что данные, передаваемые клиенту, всегда будут интерпретироваться как данные интерпретатором JavaScript.

Невыполнение этого требования может привести к тому, что пользователь отправит, например, код javascript в качестве ввода, а затем ваше приложение развернется и передаст его другому пользователю. В худшем случае его можно использовать для удаления файла вредоносного ПО внутри периметра корпоративной сети.

Но здесь может быть больше о чем беспокоиться. Будет ли полезная нагрузка javascript отображаться в HTML? Если это так, то, возможно, сначала это должно быть в HTML-кодировке. Предотвращение XSS - это широкая тема, вы можете начать здесь.

...