安全头响应头(二)​X-Frame-Options​

news2024/11/25 2:05:42

一  X-Frame-Options

1) CSP 安全头与'前端编程'息息相关,后续通过对'CSP'头的理解加深对'前端知识'的理解

①  点击劫持

说明:X-FRAME-OPTIONS是'微软'提出的一个http头,专门用来防御利用'iframe嵌套'的点击劫持攻击

相关参考 

②  简介

背景: 出于安全考虑,希望控制'other系统'是否可以嵌套'自身'系统的页面

③  语法

理解:'DENY' 和 'SAMEORIGIN' 这两个'属性值'的含义

1) DENY: 不允许'任何网站[包含当前网站]'嵌套'自己网站'的页面

备注:嵌套方式 --> 'iframe'等

2) SAMEORIGIN: 只允许'相同域名的地址(自身)'使用iframe嵌套页面

原因:谷歌浏览器较'新版'不支持ALLOW-FROM

办法:用另一个响应头Content-Security-Policy代替,配置其中的'frame-ancestors'

④  案例

⑤  浏览器支持情况

⑥  思考

1) 如果不指定'​X-Frame-Options'响应头,浏览器的'默认'行为?

2) 如何允许'第三方网站'嵌入我们站点的'页面'?

二  CSP之frame-ancestors

①  document.domain+iframe

思考:为什么要'资源内嵌' iframe   --> 解决跨域问题

特点: 这个方法只能用于同一个主域下'不同子域之间'的'跨域'请求

②   frame-ancestors简介

③  语法

④  Sources源形式

1) 'host-source'

 

2) 'scheme-source'、'self'、'none'

1、'none': 同'X-Frame-Options: DENY'类似,不允许任何页面使用'iframe'嵌套

2、'self': 只允许'同源' iframe等嵌套页面

细节点: 可能不包含'data:'、'blob:'、'filesystem'

3、'scheme-source'、'host-source' 白单名形式

⑤  案例讲解 

⑥  nginx添加

add_header Content-Security-Policy "frame-ancestors 'self' http://*.aaa.com";

add_header Content-Security-Policy "frame-ancestors wzj.com nginx.com";

细节点: '单双'、'引号'、'空格'

遗留: 是否能将'CSP'多个'属性'分别设置多个'add_header Content-Security-Policy',可读性

⑦  iframe内嵌框架使用案例

操作页面内嵌的iframe和iframe传递消息    使用iframe既觉跨域

vue项目使用 vue.config.js 解决跨域

1) 'html资源'和'nginx配置'如下:

说明: 本文不探究'iframe'的具体用法,主要是探究CSP头'frame-ancestors'属性

2) '浏览器'请求现象 --> 被'Refused拒绝'

3) '浏览器' Console '报错'

解决策略: 把我们的'公网ip'添加到'百度服务器'CSP头'frame-ancestors'中

⑧ frameset了解

⑨  遗留

1) 要对CSP '选项'进行详细的说明

self  --> 代指什么 --> 能解析到nginx所在节点的'所有域名'吗? --> eg: CNAME

2) 各种'选项'的说明

3) 默认继承全局'default-src',如果自定义选项则'覆盖'全局的

4) data: ws: wss: 等 --> * 不包含哪些?

CORS常见错误   各种proxy代理环境变量   linux设置网络代理   no_proxy拉取镜像不生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/725104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5.8.8 TCP流量控制

5.8.8 TCP流量控制 计算机网络的流量控制实际上是调节发送方的速率使得接收方能够及时处理的一个过程。 在TCP中采用的是大小可变的滑动窗口的方式进行流量控制,窗口大小的单位是字节。 如图 根据接收方的接收能力,通过接收窗口rwnd可以实现一个端到端…

PMO对企业的价值:有效赋能+战略落地︱富途网络PMO总监苗秀娟

富途网络科技(深圳)有限公司PMO总监苗秀娟女士受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:PMO对企业的价值:有效赋能战略落地。大会将于8月12-13日在北京举办,敬请关注! 议…

【LeetCode】332. 重新安排行程

332. 重新安排行程(困难) 思路 由于题目保证了存在一条合法的旅行路线,并要求按照字典序返回完整的路线。该方法通过深度优先搜索和栈的结合,可以保证每次选择字典序最小的终点进行访问,从而得到按照字典序排列的完整旅…

【Pandas】dataframe互转

目录 一、list 1.1 dataframe转list 1.2 list转dataframe 1.2.1 先用list构造字典,再转dataframe 1.2.2 对于符合列表,可以直接转成dataframe 二、dict 三、spark dataframe 一、list 【Pandas学习】list列表和Dataframe互相转换_list转datafram…

【算法】十大排序算法以及具体用例算法题

文章目录 1:冒泡排序2:选择排序3:插入排序4:希尔排序5:堆排序6:计数排序7:基数排序8:快速排序9:归并排序10:桶排序 源代码下载 1:冒泡排序 /** 冒泡排序是内部排序* 冒泡排序将会每一次都从头开始遍历* 每一次遍历都会把最大的数据放到最后一个* 因此每一次都可以少遍历一个元…

qt creator常用快捷键

F1 弹出选择类的qt帮助文档 F2进入光标所在代码的定义/声明 F4 在同名.cpp和.h文件中切换 altshiftr 在设计师界面,可以预览当前UI ctrlr编译运行当前工程,同界面的播放键ctrlb构建编译当前工程 ctrli 自动对齐代码,要选中才有效 ctrlshiftf 弹出全局查找框 …

2023最全网络安全工程师面试题(附答案)

2023年过去了一大半,先来灵魂三连问,年初定的目标完成多少了?薪资涨了吗?女朋友找到了吗? 一、网络安全岗面试题1. 什么是 DDoS 攻击?如何防范? 答:DDoS 攻击是指利用大量的计算机或…

servlet-filter(过滤器)

1.filter简述 1.1过滤器概念 Filter也称之为过滤器,它是Servlet技术中最实用的技术, 作用1是对访问web服务器请求进行拦截,过滤了,例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。…

kaggle金融量化竞赛top方案汇总

看了一下今年的研究生项目,金融量化果然还是烫门,录取分数线越来越高,申请人数依然居高不下,这么多人拼命卷... 目前来看,只卷学历,理论知识肯定是不够的,还得要实战背景,对于学生来…

Netty解决粘包半包问题自定义协议

目录 一、粘包 & 半包 1、现象分析 粘包 半包 二、解决方案 1、短连接 2、定长解码器 3、分隔符 4、长度字段解码器 三、协议设计与解析 1、HTTP 2、自定义协议 自定义协议要素 Sharable 一、粘包 & 半包 1、现象分析 因为tcp是用二进制流进行传输的&a…

性能测试-性能调优(提高系统吞吐量QPS/TPS)一篇打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、系统吞度量要素…

CyclicBarrier 源码

CyclicBarrier 源码 1.构造方法 参数 n 为等待的线程数 CyclicBarrier cyclicBarrier new CyclicBarrier(n);public CyclicBarrier(int parties) {this(parties, null);}参数 barrierAction 为当等待的线程达到 参数 parties 时执行的线程任务 blic CyclicBarrier(int par…

RCE漏洞利用挖掘方法

RCE漏洞利用挖掘方法 一、从命令执行漏洞到getshell二、命令执行漏洞详解2.1、靶场实操—DVWA(Low级别)2.2、靶场实操—DVWA(Medium级别)2.3、靶场实操—DVWA(High级别)2.4、靶场实操—DVWA(Imp…

form表单使用Select 选择器

案例: ps:年度的值类型要与select 选择器中 value 类型一致!! 如果input框中显示的是数字,说明年度的值没有与选择器中的的value一致!!! YearNum 要与 value 类型一致!&#xff01…

【第三章 flutter学习之Dart基础(上)】

文章目录 一、入口方法的定义方式二、Dart变量和常量三、Dart常用数据类型四、Dart运算符与类型转换及循环语句五、自定义方法六、Dart静态成员、操作符、类的继承七、接口八、接口分离写法九、一个类实现多个接口 一、入口方法的定义方式 main(){print(hello world) } //下边…

Docker学习笔记24

Docker Swarm 搭建: 主机名系统版本IP地址功能swarm-1centos7.9192.168.17.10管理节点swarm-2centos7.9192.168.17.20工作节点swarm-3centos7.9192.168.17.30工作节点 CPU、Memory、Disk不做要求。 准备IP地址和主机名: hostnamectl set-hostname swa…

测试不容易,入坑请注意!

“零基础入门,保证就业,钱多,事少!” 绝大部分培训机构的招生话术不外乎如此,骗了一波又一波钱多人傻的人入坑测试。而在报名前,会进行考试评估学员是否适合从业软件测试的机构很难见到。如果有&#xff0…

几何光学软件

光线追踪器 从手册中: https://arachnoid.com/OpticalRayTracer/ OpticalRayTracer 是一款免费 (GPL) 跨平台应用程序,用于分析透镜和反射镜系统。 它使用光学原理和虚拟光具座来预测多种普通和奇异镜头类型以及平面镜和曲面镜的行为。 OpticalRayTracer…

搭建ssl双向验证python

生成证书 客户端和服务端搭建 https simple-https-server.py # run as follows: python simple-https-server.py # then in your browser, visit: # https://localhost import ssl import http.serverserverAddress (0.0.0.0, 443) httpd http.server.HTTPServer(serverA…

【力扣】设计内存分配器(高效实现)

题目 给你一个整数 n ,表示下标从 0 开始的内存数组的大小。所有内存单元开始都是空闲的。 请你设计一个具备以下功能的内存分配器: 分配 一块大小为 size 的连续空闲内存单元并赋 id mID 。 释放 给定 id mID 对应的所有内存单元。 注意:…