Разрешить определенным символам быть невосприимчивыми к кодировщику ESAPI? - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь включить кодировщик ESAPI с моим приложением JavaEE и хочу, чтобы он не кодировал определенный набор символов, например '<', '!', '(', ')'.</p>

Я прочитал в документации https://static.javadoc.io/org.owasp.esapi/esapi/2.0.1/org/owasp/esapi/Encoder.html, что "все символы должны быть закодированы, кроме определенного списка" иммунных "символов".

Я хотел бы знать, где и как я могу настроить этот конкретный список "иммунных" персонажей.Это будет в файле ESAPI.properties?

1 Ответ

0 голосов
/ 24 ноября 2018

Простой ответ: нельзя.Или, по крайней мере, не легко.Это можно сделать, изменив строку в ESAPI.properties с:

ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder

на что-то вроде

ESAPI.Encoder=com.MyCompany.myApp.MyEncoder

, а затем в MyEncoder.java, заменив одну или несколько инициализаций ESAPI * его различными IMMUNE_* переменными своими собственными.Но это единственный способ сделать это.Нет никакого метода или свойства, чтобы переопределить это, потому что в общем случае вы никогда не должны делать это.(Было принято [плохое, IMO] решение сделать все эталонные реализации ESAPI одноэлементными, поэтому, предоставив такой метод классу DefaultEncoder, я бы сказал, что вы измените его для всех экземпляров класса, и это кажется слишком опасным.)

Поэтому вместо того, чтобы отвечать на ваш вопрос, как я, я должен спросить вас почему вы хотите это сделать?В кодек IMMUNE_CSS недавно был добавлен символ # (в настоящее время только в ветке «Разработка» на GitHub), но даже это не было сделано без широкого обсуждения среди нынешних и бывших руководителей проектов OWASP.Иммунные списки разумно выбирают, чтобы быть «безопасными» во всех известных случаях.Тогда не предназначены для применения только в некоторых крайних случаях, которые, как известно, безопасны.Вот почему я спрашиваю: " Почему Вы хотите это сделать? Что конкретно вы пытаетесь достичь?"поскольку может быть лучший подход к тому, что вы пытаетесь сделать.

...