Я пытаюсь использовать AntiSamy, чтобы предотвратить атаки XSS на моем сайте. Я скачал следующие банки и добавили их в "/ WEB-INF/Lib"Расположение файла политики AntiSamy в веб-проекте
antisamy-1.5.3.jar
nekohtml.jar
xercesImpl-2.5.0. баночка
вместе с файлом политики antisamy-Slashdot-1.4.4.xml в "/ WEB-INF".
Я попытался реализовать фильтр через web.xml. Отрывок сервлета Я использую это
public class AntiSamyFilter implements Filter {
private static final Logger LOG = Logger.getLogger(AntiSamyFilter.class);
private final AntiSamy antiSamy;
public AntiSamyFilter() {
try {
URL url = this.getClass().getClassLoader().getResource("antisamy-slashdot-1.4.4.xml");
LOG.info("After getResource");
Policy policy = Policy.getInstance(url.getFile()); //Deployment fails
LOG.info("After Policy");
antiSamy = new AntiSamy(policy);
LOG.info("After antiSamy");
} catch (PolicyException e) {
throw new IllegalStateException(e.getMessage(), e);
}
}
}
Развертывание терпит неудачу после политики политики = Policy.getInstance (url.getFile());. Вероятно, это из-за пути файла политики.
Может кто-нибудь скажет мне, где должен храниться файл политики?