码农知识堂 - 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

  • 相关阅读:
    WPF创建自定义控件编译通过但是找不到资源
    基于Django+Vue.js+Scrapy+Sqlite3电影数据可视化(柱状图、折线图、饼图、词云图)设计
    loguru日志二次封装
    运放的“虚短”和“虚断”
    Pytorch 多卡并行(3)—— 使用 DDP 加速 minGPT 训练
    C++项目——云备份-⑦-服务端业务处理模块设计与实现
    【JVM笔记】G1回收器垃圾回收过程
    某光伏行业头部企业联合谢宁老师《向华为学习 业务领先的战略规划SP(BLM)和战略解码BP(BEM)》训战内训成功举办
    1688商品详情接口代码展示
    Linux之内核Platform LED
  • 原文地址:https://blog.csdn.net/sayyy/article/details/133822078
    • 最新文章
    • 沪漂五周年了:我越来越迷茫了
      Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
      MySQL-Seconds_behind_master的精度误差
      [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
      AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
      Agent OS :五种驯服不确定性的范式
      PortSwigger SQL注入LAB11
      数据库即时编译JIT
      [Begin]AI Learn Data Day 0
      深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    小工具 小游戏
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

    京公网安备 11010502049817号