【发布时间】:2017-12-12 17:49:14
【问题描述】:
目前,我正在从事一个 vaadin 项目,我正在努力防止对该项目的点击劫持攻击。搜索解决方案后,我发现在 web.xml 中添加以下 sn-p 会起作用:
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>antiClickJackingEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我在 pom.xml 中添加了以下依赖项:
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>9.0.2</version>
</dependency>
我正在 payara 服务器上运行该项目。
项目运行但抛出以下错误:
引起:java.lang.ClassNotFoundException: org.apache.catalina.filters.HttpHeaderSecurityFilter 未找到 org.glassfish.main.web.core [69] 在 org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532) 在 org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) 在 org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 org.apache.catalina.core.ApplicationFilterConfig.loadFilterClass(ApplicationFilterConfig.java:283) 在 org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:253) 在 org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:123) ... 50 更多
这意味着我的防止点击劫持攻击的解决方案将不起作用:)
任何帮助将不胜感激:)。
【问题讨论】:
-
对我来说,你似乎混合了 Tomcat 和 Glassfish,可能这不会一起工作
-
使用 vaadin 至少有两种方法可以做到这一点。我们已经测试了两者并使用当前的 apache 配置。请看stackoverflow.com/questions/45321503/…
-
是的,我之前找到了它,但只是想是否可以在 web.xml 中进行一些配置 :) 。顺便说一句,使用 apache 配置的解决方案是什么?
标签: java apache maven vaadin clickjacking