码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • HTTP 响应头 X-Frame-Options


    简介

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

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

    语法

    X-Frame-Options: DENY
    
    • 1

    或

    X-Frame-Options: SAMEORIGIN
    
    • 1

    检查 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;
    
    • 1

    了解 Nginx 的 add_header 指令入口

    spring boot 配置 X-Frame-Options

    启用 X-Frame-Options

    支持SAMEORIGIN的设置方式:

    @EnableWebSecurity
    @Configuration
    public class WebSecurityConfig extends DefaultWebSecurityConfigurer {
     
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            super.configure(http);
            http.headers().frameOptions().sameOrigin();
     
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    禁用 X-Frame-Options

    @EnableWebSecurity
    @Configuration
    public class WebSecurityConfig extends DefaultWebSecurityConfigurer {
     
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            super.configure(http);
            http.headers().frameOptions().disable();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    参考

    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

  • 相关阅读:
    Django model 联合约束和联合索引
    为什么 Spring和IDEA 都不推荐使用 @Autowired 注解
    【无标题】
    水库大坝安全监测预警系统的重要作用
    背八股文的都是什么水平
    vscode中git的使用,以及与webstorm中git的使用对比
    【JAVA学习一:基础语法】
    深度学习每周学习总结P5(运动鞋识别)
    C++基础入门 C++初识
    【JAVA-1】第一章 Java语言概述 5~11
  • 原文地址:https://blog.csdn.net/sayyy/article/details/133822078
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号