Простой ответ: вы не можете. Или, по крайней мере, не легко. Это можно сделать, изменив строку в ESAPI.properties с:
ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder
к чему-то вроде
ESAPI.Encoder=com.MyCompany.myApp.MyEncoder
а затем в MyEncoder.java, заменив одну или несколько инициализаций различных IMMUNE_*
переменных ESAPI своими собственными. Но это единственный способ сделать это. Нет никакого метода или свойства, чтобы переопределить это, потому что в общем случае вы никогда не должны этого делать. (Было [плохое, IMO] дизайнерское решение сделать все эталонные реализации ESAPI одноэлементными, поэтому предоставление такого метода классу DefaultEncoder означало бы, что вы изменили бы его для всех экземпляров класса, и это кажется слишком опасным.)
Поэтому вместо того, чтобы отвечать на ваш вопрос, как я, я должен спросить вас, почему вы хотите это сделать? Недавно к кодеку IMMUNE_CSS был добавлен символ «#» (в настоящее время только в ветке «develop» на GitHub), но даже это не было сделано без обширного обсуждения между нынешними и бывшими руководителями проекта OWASP. Иммунные списки разумно выбраны, чтобы быть «безопасными» во всех известных случаях. Then не предназначены для применения только в некоторых пограничных случаях, которые считаются безопасными. Вот почему я спрашиваю: «Почему вы хотите это сделать? Чего конкретно вы пытаетесь достичь?» поскольку может быть лучший подход к тому, что вы пытаетесь сделать.
person
Kevin W. Wall
schedule
23.11.2018