Web 项目中 AntiSamy 策略文件的位置
Location of AntiSamy policy file in web project
我正在尝试使用 AntiSamy 来防止对我的网站进行 XSS 攻击。我下载了以下 jar 并将它们添加到“/WEB-INF/lib”
antisamy-1.5.3.jar
nekohtml.jar
xercesImpl-2.5.0.jar
连同策略文件 antisamy-slashdot-1.4.4.xml 在“/WEB-INF”中。
我试图通过web.xml实现一个过滤器。我正在使用的 servlet 的一个片段是
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 policy = Policy.getInstance(url.getFile()); 后失败。可能是策略文件路径的问题。
谁能告诉我策略文件应该保存在哪里?
url.getFile
部分失败,因为找不到 antisamy-slashdot-1.4.4.xml
文件。我在 src/my/package
中创建了一个包并更改了
URL url = this.getClass().getClassLoader().getResource("antisamy-slashdot-1.4.4.xml");
至
URL url = this.getClass().getClassLoader().getResource("/my/package/antisamy-slashdot-1.4.4.xml");
我还添加了 batik.jar
以及其他 jar 文件。它解决了我的问题
我正在尝试使用 AntiSamy 来防止对我的网站进行 XSS 攻击。我下载了以下 jar 并将它们添加到“/WEB-INF/lib”
antisamy-1.5.3.jar
nekohtml.jar
xercesImpl-2.5.0.jar
连同策略文件 antisamy-slashdot-1.4.4.xml 在“/WEB-INF”中。
我试图通过web.xml实现一个过滤器。我正在使用的 servlet 的一个片段是
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 policy = Policy.getInstance(url.getFile()); 后失败。可能是策略文件路径的问题。
谁能告诉我策略文件应该保存在哪里?
url.getFile
部分失败,因为找不到 antisamy-slashdot-1.4.4.xml
文件。我在 src/my/package
中创建了一个包并更改了
URL url = this.getClass().getClassLoader().getResource("antisamy-slashdot-1.4.4.xml");
至
URL url = this.getClass().getClassLoader().getResource("/my/package/antisamy-slashdot-1.4.4.xml");
我还添加了 batik.jar
以及其他 jar 文件。它解决了我的问题