最近开坑一个个人Web相册系统, 引入 Spring Security 主要目的是做用户登录认证,附带得到 Spring Security 各种特性, 自然会有有一个后端的管理功能,这儿我是用的免费的xAdmin后台管理模板.但是在引入Security后iframe无法展开,页面单独可以正常展开! 先使用Html方式解决!
错误提示
X-Frame-Options may only be set via an HTTP header sent along with a document. It may not be set inside <meta>.
解释
(没成功,成功就见鬼了)
<meta http-equiv="X-Frame-Options" content="标头">
X-Frame-Options 是一个 HTTP 标头(header),用来告诉浏览器这个网页是否可以放在 iFrame 内。例如:
- X-Frame-Options: DENY
- X-Frame-Options: SAMEORIGIN
- X-Frame-Options: ALLOW-FROM https://jiangdalong.com.com/
-
第一个例子告诉浏览器不要(DENY)把这个网页放在 iFrame 内,通常的目的就是要帮助用户对抗点击劫持。
-
第二个例子告诉浏览器只有当架设 iFrame 的网站与发出 X-Frame-Options 的网站相同,才能显示发出 X-Frame-Options 网页的内容。
-
第三个例子告诉浏览器这个网页只能放在 https://jiangdalong.com.com// 网页架设的 iFrame 内。
不指定 X-Frame-Options 的网页等同表示它可以放在任何 iFrame 内。
X-Frame-Options 可以保障你的网页不会被放在恶意网站设定的 iFrame 内,令用户成为点击劫持的受害人。
后来查询了一番是安全框架导致的问题, 我们需要编写一个配置类去解决一下这个问题.继承 WebSecurityConfigurerAdapter, 并且实现configure(HttpSecurity http)接口, 配置方案如下:
http.headers().frameOptions().sameOrigin();
问题解决! 😊