当前位置: 首页 > news >正文

HTTP 响应头 X-Frame-Options

简介

X-Frame-Options HTTP 响应头用来给浏览器一个指示。该指示的作用为:是否允许页面在 <frame>, </iframe> 或者 <object> 中展现。
网站可以使用此功能,来确保自己网站的内容没有被嵌套到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。

重点1:当访问网页浏览器支持 X-Frame-Options 时,有效。
重点2:Content-Security-Policy (CSP) HTTP 响应头有一个名为 frame-ancestors 的指令,有相同的作用。支持CSP frame-ancestors 指令的浏览器已经废弃了 X-Frame-Options 响应头。

语法

X-Frame-Options: DENY

X-Frame-Options: SAMEORIGIN

检查 X-Frame-Options 是否已生效

以Google浏览器为例,打开网站按F12键,选择Network,找到对应的Headers,如下图所示
在这里插入图片描述

测试 X-Frame-Options 是否已生效

https://clickjacker.io/
在这里插入图片描述

Nginx 配置 X-Frame-Options

配置 Nginx 发送 X-Frame-Options 响应头,把下面这行添加到 ‘http’, ‘server’ 或者 ‘location’ 的配置中:

add_header X-Frame-Options SAMEORIGIN always;

了解 Nginx 的 add_header 指令入口

spring boot 配置 X-Frame-Options

启用 X-Frame-Options

支持SAMEORIGIN的设置方式:

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends DefaultWebSecurityConfigurer {@Overrideprotected void configure(HttpSecurity http) throws Exception {super.configure(http);http.headers().frameOptions().sameOrigin();}
}

禁用 X-Frame-Options

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends DefaultWebSecurityConfigurer {@Overrideprotected void configure(HttpSecurity http) throws Exception {super.configure(http);http.headers().frameOptions().disable();}
}

参考

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Frame-Options
https://blog.csdn.net/zzhongcy/article/details/124609116
https://blog.csdn.net/u014704612/article/details/115633050

http://www.lryc.cn/news/193610.html

相关文章:

  • MongoDB 集群配置
  • random生成随机数的灵活运用
  • 宏定义实现二进制数的奇偶位交换
  • 【ELK 使用指南】ELK + Filebeat 分布式日志管理平台部署
  • 传输层 | UDP协议、TCP协议
  • Webmin(CVE-2019-15107)远程命令执行漏洞复现
  • 嵌入式实时操作系统的设计与开发 (前后台系统)
  • Macos数字音乐库:Elsten Software Bliss for Mac
  • 基于SpringBoot的校园周边美食探索及分享平台的设计与实现
  • GPT-4V的图片识别和分析能力
  • 蓝桥杯(等差素数列,C++)
  • Ceph 中的写入放大
  • Mabatis-puls强于Mybatis的地方
  • vue项目npm intall时发生版本冲突的解决办法
  • tomcat多实例部署jenkins
  • 强连通分量+缩点
  • 如何做系统架构设计
  • L14D6内核模块编译方法
  • PyTorch入门教学——dir()函数和help()函数的应用
  • 使用Elasticsearch来进行简单的DDL搜索数据
  • 【软考】9.3 二叉树存储/遍历/线索/最优/查找/平衡
  • 关于矿井地面电力综合自动化系统的研究与产品选型
  • 论文阅读:Offboard 3D Object Detection from Point Cloud Sequences
  • Python学习基础笔记六十八——循环
  • 部署k8s dashboard(这里使用Kubepi)
  • Java Lambda表达式的使用
  • 【初始C语言8】详细讲解初阶结构体的知识
  • <C++> IO流
  • 基于单目相机的2D测量(工件尺寸和物体尺寸)
  • 23面向对象案例1