Bootstrap

iframe X-Frame-Options

在前端网页中,由于需要嵌入一些网页,但是打开后却报错,信息如下:

Refused to display 'http://localhost:8080/' in a frame because it set 'X-Frame-Options'。

原因: 后端开发框架是: SpringBoot + Security ,

而 Spring Security默认设置X-Frame-Options 为 deny:拒绝

下面介绍下X-Frame-Options主要用处是用于防止点击劫持,**点击劫持(ClickJacking)**是一种视觉上的欺骗手段。攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。 HTTP响应头信息中的X-Frame-Options,可以指示浏览器是否应该加载一个iframe中的页面。如果服务器响应头信息中没有X-Frame-Options,则该网站存在ClickJacking攻击风险。网站可以通过设置X-Frame-Options阻止站点内的页面被其他页面嵌入从而防止点击劫持。

X-Frame-Options有以下配置项:
1.DENY:不能被嵌入到任何iframe或者frame中。
2.SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中
3.ALLOW-FROM uri:只能被嵌入到指定域名的框架中。

那么怎样自定义配置呢?
可以在Spring Security 配置文件中配置:

   @Override   
   protected void configure(HttpSecurity http) throws Exception {     
      http.headers().frameOptions().deny();
   }

;