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的设置方式:

java 复制代码
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends DefaultWebSecurityConfigurer {
 
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        super.configure(http);
        http.headers().frameOptions().sameOrigin();
 
    }
}

禁用 X-Frame-Options

java 复制代码
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends DefaultWebSecurityConfigurer {
 
    @Override
    protected 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

相关推荐
IP老炮不瞎唠5 小时前
SOCKS5 vs HTTP:哪种代理协议更适合你的业务场景
网络·网络协议·http
中科三方6 小时前
HTTP劫持与DNS劫持有什么区别?如何识别和防范?
网络·网络协议·http·dns
小江的记录本7 小时前
【Docker】 Docker 全平台部署(Linux / Windows / MacOS)与 前后端分离项目 容器化方案
java·linux·windows·http·macos·docker·容器
txinyu的博客8 小时前
muduo http优化 —— 在原本数据监测http上 多支持了功能完善的http_1
网络·网络协议·http
小贺儿开发8 小时前
Unity3D LED点阵屏幕模拟
http·unity·浏览器·网络通信·led·互动·点阵屏
小江的记录本8 小时前
【Docker】《 Docker 高频常用命令速查表 》
java·前端·后端·http·docker·容器·eureka
Brookty9 小时前
HTTP应用数据组织、HTML/CSS/JS数据描述及应用层数据处理介绍
css·网络·http·html
HwJack201 天前
HarmonyOS HTTP请求:从“能跑就行”到“优雅可靠”的进化之路
http·华为·harmonyos
AnalogElectronic1 天前
对https一系列问题的疑问与解答
网络协议·http·https
冉佳驹1 天前
Linux ——— 网络开发核心知识与协议实现详解
linux·http·https·udp·json·tcp·端口号