Eureka无法使用iframe的内嵌页面访问或iframe内嵌Eureka报拒绝我们的链接请求的解决方法_振钧的博客-程序员ITS203_不允许iframe嵌入

技术标签: SpringSecurity  eureka  iframe  JAVA后端  

最近需要让eureka的管理页面能够嵌入到我们的后台管理中,我们使用标签,代码如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
	<style>
		html, body {
    
			height: calc(100%);
			margin: 0;
		}
	</style>
</head>
<body>
<iframe style="width: 100%; height: 100%" src="http://localhost:18001/login" frameborder="0" ></iframe>
</body>
</html>

但是发现无法直接正常显示:
在这里插入图片描述
F12打开调试页面,发现下列的错误信息:

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

这是因为Spring Security默认设置X-Frame-Options 为 deny:拒绝

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

X-Frame-Options响应头。赋值有如下三种

  • DENY:不能被嵌入到任何iframe或者frame中。
  • SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中
  • ALLOW-FROM uri:只能被嵌入到指定域名的框架中

解决方案
从这里就可以看到,是因为Spring Security默认设置X-Frame-Options响应头是 DENY,也就是不能被嵌入到任何iframe中,这也造成了我们无法正常显示eureka页面,所以我们需要在Spring Security的配置文件中设置关闭X-Frame-Options即可,也就是加入下面这句

.headers().frameOptions().disable();

完整代码如下:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    
    @Override
    protected void configure(HttpSecurity http) throws Exception {
    
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER);
        http.csrf().disable()
        .headers().frameOptions().disable();
    }
}

添加后,就能够正常显示页面了:
在这里插入图片描述
参考资料:原博文

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42567801/article/details/121799563

智能推荐

蓝桥杯、PAT、CCF CSP、团体程序设计天梯赛、传智杯、全国高校计算机能力挑战赛、软考等大学生编程比赛/考试介绍_鸣月my的博客-程序员ITS203_pat比赛

简要介绍一下6个适合普通大学生参加的编程比赛/考试(注:有的比赛如蓝桥杯有多种赛别,本文仅介绍编程比赛)。蓝桥杯(官网:http://dasai.lanqiao.cn/pages/dasai/index.html)报名时间:一般为每年9月份-12月份。举办时间:一般是报名次年的3月份省赛、6月份决赛(2020年因疫情推迟),省赛一等奖才能进入在北京举行的全国总决赛。每年举办一次,2020年...

去除java的泛型集合(字符串)重复元素参考代码_相随心声的博客-程序员ITS203

 public static void main(String[] args) {      List list = new ArrayList();      list.add("11");      list.add("112");      list.add("11");      list.add("112");      list.add("13");

特征变换_旺旺丫丫的博客-程序员ITS203

1.One-Hot Encoding有多少个状态就用几个bit来进行表示,实际上是向量维度增加了。树形模型不进行One-Hot Encodingfrom sklearn.preprocessing import OneHotEncoderimport pandas as pddata = pd.DataFrame({'number': [1, 2, 1], 'age': [20, ...

P1004 方格取数_enjoy_code_的博客-程序员ITS203

题目描述设有 N×N 的方格图 (N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 0。如下图所示(见样例):A0 0 0 0 0 0 0 00 0 13 0 0 6 0 00 0 0 0 7 0 0 00 0 0 14 0 0 0 00 21 0 0 0 4 0 00 0 15 0 0 ...

Java的JDBC_ ღ₅₂₀¹³¹⁴的博客-程序员ITS203

这段时间一直在自学java,只学到了一些皮毛,记录一下以便以后可以用的上环境介绍在mysql中创建一个库shen,并创建user表和插入表的数据。新建一个Java工程jdbc,并导入数据驱动。加载数据库驱动注意:如果连接的是SQL server或者其他数据库的话都是不一样的一下是分别几个数据库的方法,可以直接复制到我圈出来的括号里面2、建立连接...

随便推点

CE 传导发射测试_Steven&Aileen的博客-程序员ITS203_ce传导发射

本文整理与网络;文章参考https://blog.csdn.net/weixin_42717711/article/details/93198788EMC测试(5)——传导发射测试(CE)http://blog.sina.com.cn/s/blog_88e6f8c40100whjd.html 传导发射(ConductedEmission)测试https:...

S3 服务(Simple Storage Service简单存储服务) 简介(与hdfs同一级)_weixin_33755649的博客-程序员ITS203

                          图1  spark 相关 亚马逊云存储之S3(Simple Storage Service简单存储服务)(转 ) S3是Simple Storage Service的缩写,即简单存储服务。亚马逊的名词缩写也都遵循这个习惯,例如Elastic Compute Cloud缩写为EC2等等。其他组织类似的命名有W3C,如果我们也follow...

php Sign in with Apple(苹果授权登录PHP后端接口)_卿柠的博客-程序员ITS203_apple登录接口

详细配置参考:https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple本文主要参考:https://easeapi.com/blog/blog/88-sign-with-apple.html https://blog.csdn.net/wpf199402076118/article/det...

红外线测温仪方案技术参数_西城微科方案开发的博客-程序员ITS203

测温仪是一种主要用于测人体温度的仪器,当然器材也具有功能多样性,能够显示当前室温(环境温度),也可以测量物体的温度。当前测温仪多用于疫情期间为外归人员测量体温,来初步筛查疑似新冠患者,使用的场所多样,多用于家庭用户、宾馆、图书馆、大型企事业单位,也可以用于医院、学校、海关、机场等综合性场所。    红外线测温仪方案技术参数    测量方式:非接触式    测量方式:1cm~5cm    测量范围:32.0℃43.0℃(89.6°F109.4°F)    测量时间:&lt;2S    

outlook 2007无法连接exchange server时的解决方法_kofkyo的博客-程序员ITS203

 /* from: http://support.microsoft.com/kb/913843 */ When you try to connect Microsoft Office Outlook 2007 to Microsoft Exchange Server, you may experience any one of the following symptoms: I

MySQL设置数据库为只读_kun_行者的博客-程序员ITS203_mysql设置只读权限

前言:默认情况下,我们的 MySQL 实例是可读写的。但有些情况下,我们可以将整个实例设置为只读状态,比如做迁移维护的时候或者将从库设为只读。本篇文章我们来看下 MySQL 设置只读相关知识。1.关于 read_only 参数MySQL系统中,提供有 read_only 和 super_read_only 两个只读参数,参考官方文档,这里介绍下这两个参数的作用:read_only 参数默认不开启,开启后会阻止没有 super 权限的用户执行数据库变更操作。开启后,普通权限用户执行插入、更新、删除等操

推荐文章

热门文章

相关标签