hai*_*zpt 14 spring-security x-frame-options clickjacking
我有两个Web应用程序:Web应用程序(Web应用程序)和报表Web.我想在web-app中嵌入报表web <iframe>.因此浏览器拒绝了错误:
X-Frame-Options:DENY
有帮助吗?
med*_*117 17
X-Frame-options的值可以是DENY(默认值),SAMEORIGIN和ALLOW-FROM uri.根据Spring Security文档,您可以告诉Spring覆盖以这种方式添加自定义标头的默认行为:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.headers()
.addHeaderWriter(new XFrameOptionsHeaderWriter(new WhiteListedAllowFromStrategy(Arrays.asList("www.yourhostname.com"))))
...
}
Run Code Online (Sandbox Code Playgroud)
和Spring将附加X-Frame-Options:ALLOW-FROM ...或
.addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN))
Run Code Online (Sandbox Code Playgroud)
对于X-Frame-Options:SAMEORIGIN或完全禁用它
http.headers().frameOptions().disable()
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Spring Security 4.x,则以下配置将解决您的问题(假设webapp在同一服务器地址上运行).
XML配置:
<http>
<!-- ... -->
<headers>
<frame-options policy="SAMEORIGIN" />
</headers>
</http>
Run Code Online (Sandbox Code Playgroud)
Java配置:
@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ...
.headers().frameOptions().sameOrigin();
}
}
Run Code Online (Sandbox Code Playgroud)
禁用配置
你也可以禁用它,意识到安全风险.
http.headers().frameOptions().disable();
背景资料
在Spring Security 3.2.0中,引入了安全标头,但默认情况下已禁用:http:
//spring.io/blog/2013/08/23/spring-security-3-2-0-rc1-highlights-security-页眉/
在Spring Security 4.x中,默认情况下启用标头(对于IFrame:X-Frame-Options:DENY):"Spring Security 4.x已将Java配置和XML配置都更改为要求显式禁用默认值."
http://docs.spring.io/spring-security/site/migrate/current/3-to-4/html5/migrate-3-to-4-jc.html#m3to4-header
来源:http://docs.spring.io/autorepo/docs/spring-security/4.0.x/reference/html/headers.html#headers-frame-options
| 归档时间: |
|
| 查看次数: |
19325 次 |
| 最近记录: |