我们有一个使用 OpenSymphony SiteMesh 组装页面的应用程序,并且我们添加了 OWASP ESAPI ClickjackFilter 以将 X-FRAME-OPTIONS 标头添加到响应中。
但是,它仅在 ClickjackFilter 映射出现在 web.xml 中的 SiteMeshFilter 映射之后才有效。如果点击劫持过滤器先出现,则不会添加 X-FRAME-OPTIONS 标头。
这有效:
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/web/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Clickjacking filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这不起作用:
<filter-mapping>
<filter-name>Clickjacking filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/web/*</url-pattern>
</filter-mapping>
为什么这两个过滤器的顺序很重要?