安全头响应头(三)X-Content-Type-Options
一 X-Content-Type-Options响应头
说明:先写个'框架',后续补充

思考:请求类型是 "style" 和 "script" 是什么意思?
script标签 style StyleSheet

JavaScript MIME type
文件扩展和Content-Type的映射关系
场景: 一个'.jpg的图片文件'被恶意嵌入了可'执行'的'js'代码
① 基础铺垫
nginx(十八)mime.types的作用
+++++++ "列举CDN一个应用场景:避免nginx默认的Content-Type元数据" +++++++types {}default_type '';特点: 此时'nginx'不返回'Content-Type'响应头,完全由'浏览器'自行判断
② 浏览器默认行为
1) 互联网上的资源有'各种类型',通常浏览器会根据'响应头的Content-Type字段'来'分辨'它们的类型2) 例如:"text/html"代表html文档、"image/png"是PNG图片、"text/css"是CSS样式文档3) 然而'有些资源的Content-Type'是'错的'或者'未定义[最常见]'ps:这时某些浏览器会'启用MIME-sniffing'来'猜测'该资源类型,'解析'内容并'执行' --> "默认"1、给一个html文件指定Content-Type为"text/plain",在IE8中会被当做html来解析2、利用浏览器的这个特性,攻击者甚至可以让'原本应该解析为图片'的请求被解析为'js'遗留: X-Content-Type-Options: nosniff --> "禁用浏览器的类型猜测行为"+++++++++++++++++++ "案例讲解" +++++++++++++++++++

# 1) 取消nginx'默认'的 mime.types配置
types { } # 2) 指定css文件返回指定content-type
default_type text/html;



③ 问题引入
1、资源'展示'

2、这里'简化'nginx.conf配置,只做了'核心'说明

3、测试'现象'

现象: url请求'.css和.js 静态文件',nginx 返回的Content-Type是'text/html'chrome '报错':1、Refused to execute script from 'xxx.js' 2、because its MIME type ('text/html') is not executable,3、and strict MIME type checking is enabled强调:作为'运维人员',尽可能的'保留'和'还原'案发的'事故'现场疑惑:为什么没有根据'mine.type'返回正确的'Content-Type'?
![]()
现象及其相似
index.html 'meta text/html' 中通过'<script src="js/min.wzj.js">'相对路径'加载'文件++++++++++ "题外话" ++++++++++location ~* min.wzj.js$ {alias /home/kiosk/WebstormProjects/form/js/min.wzj.js }
location和alias的搭配问题
1、原因:是不是'原来'是好的,然后加了'安全加固'造成的add_header X-Content-Type-Options: nosniff2、观察: 是'nginx返回静态资源'还是后端'返回'的通过'$upstream_addr'或'sent_http_content_type'判断备注:对比'$upstream_http_content_type'和'sent_http_content_type' -->"加工处理"补充: 定义一个'独一无二的响应头[加always]'放到对应的location中,看'到底生效了没'?附加: 在client看'异常url'的响应体,也'可以'辅助理解3、排错1、如果是'后端返回错误的Content-Type',nginx如何能拦截?2、如果是'nginx自身返回错误的Content-Type',如何排查呢?3、诡异: nginx把'图片'识别为'text/html',加了add_header都'不管用'4、遗留: nginx是根据'$request_uri'还是'$uri' 是查找'静态'资源?
相关配置说明
遗留:add_header '显示添加'会不会'影响'default_type?思考:如果Content-Type'请求头'只有有限的几个,与响应头(Content-Type)'协商不一致'呢?探究:原来虽然配置了安全头,但是'add_header'作用域覆盖了,导致'没有生效'
④ 参考链接
css 的content-type为"text/html" 不是 "text/css" html兼容性
解决css文件返回格式Content-TYpe为text/html问题
php-fpm处为通配符"/",使得所有请求均会被php-fpm处理,导致css文件的响应头出错
浏览器strict MIME type checking问题处理
为 CSS 设置正确的 Content-Type
Java Web 发送请求 CSS文件 和 JS文件引用失败
相关文章:
安全头响应头(三)X-Content-Type-Options
一 X-Content-Type-Options响应头 说明:先写个框架,后续补充 思考:请求类型是 "style" 和 "script" 是什么意思? script标签 style StyleSheet JavaScript MIME type 文件扩展和Content-Type的映射关系 场景: 一个…...
13 计算机视觉-代码详解
13.2 微调 为了防止在训练集上过拟合,有两种办法,第一种是扩大训练集数量,但是需要大量的成本;第二种就是应用迁移学习,将源数据学习到的知识迁移到目标数据集,即在把在源数据训练好的参数和模型ÿ…...
jupyter打开ipynb后,还没有运行cell,反复报错
今天遇到了一个比较奇怪的问题: 这个原因是当前目录下有一个code.py的文件,一旦打开ipynb,就是先执行code.py,而且遇到报错,还会反复执行,导致内核崩溃。...
一台阿里云服务器怎么部署多个网站?以CentOS系统为例
本文阿里云百科介绍如何在CentOS 7系统的ECS实例上使用Nginx搭建多个Web站点。本教程适用于熟悉Linux操作系统,希望合理利用资源、统一管理站点以提高运维效率的用户。比如,您可以在一台云服务器上配置多个不同分类的博客平台或者搭建多个Web站点实现复杂…...
history记录日期时间和日志记录操作
history命令能查看到操作日期和时间的配置方法: 1)在/etc/profile文件中添加一行: export HISTTIMEFORMAT"%F %T whoami " 2)保存后,执行加载命令: source /etc/profile 3)然后检…...
RocketMQ 单机源码部署 自定义配置文件和端口以及acl权限配置解析
思路 1、我们首先配置完 namesrv和broker和acl认证的配置文件,然后直接使用-c指定配置文件来启动程序,就会非常明了,用户名密码要大于6,第一个用户我测试着不知道为什么始终有最高权限,大家尽量不要吧第一个用户给别人…...
NuGet控制台命令初步使用
查看所有安装的包, 查找包,提示Nuget版本低;安装一个更高版本; 查看所有安装的包, 查找名字包含某字符串的包, 查找名字包含某字符串的包, 安装,使用-version指定版本,可…...
2023年国赛数学建模思路 - 案例:FPTree-频繁模式树算法
文章目录 算法介绍FP树表示法构建FP树实现代码 建模资料 ## 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模式树算法,…...
Positive Technologies:有针对性的攻击占非洲所有攻击的 68%
网络犯罪分子最常攻击的是非洲的金融公司和电信公司 Positive Technologies 分析了 2022–2023 年非洲遇到的各种网络安全威胁,并在圣彼得堡举行的第二届俄罗斯—非洲峰会上介绍了研究结果。根据我们的专家的介绍,非洲金融部门受到的网络攻击最多&#…...
Flink CDC系列之:TiDB CDC 导入 Elasticsearch
Flink CDC系列之:TiDB CDC 导入 Elasticsearch 一、通过docker 来启动 TiDB 集群二、下载 Flink 和所需要的依赖包三、在TiDB数据库中创建表和准备数据四、启动Flink 集群,再启动 SQL CLI五、在 Flink SQL CLI 中使用 Flink DDL 创建表六、Kibana查看Ela…...
未来混合动力汽车的发展:技术探索与前景展望
随着环境保护意识的增强和对能源消耗的关注,混合动力汽车成为了汽车行业的研发热点。混合动力汽车融合了传统燃油动力和电力动力系统,通过优化能源利用效率,既降低了燃油消耗和排放,又提供了更长的续航里程。本文将探讨混合动力汽…...
C进阶(2/7)前篇——指针进阶
前言:本文章讲解部分指针进阶内容。后续继续更新。 文章重点: 1. 字符指针 2. 数组指针 3. 指针数组 4. 数组传参和指针传参 目录 前言:本文章讲解部分指针进阶内容。后续继续更新。 指针初阶了解: 1.字符指针 1.1一道有关于字…...
C 内存分配器 mimalloc
有论文 … … https://www.microsoft.com/en-us/research/publication/mimalloc-free-list-sharding-in-action/ 可以减少内存碎片,微软研究院2019 年开源出的内存分配器 代码,适配linux...
leetcode做题笔记74搜索二维矩阵
给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 思…...
深信服数据中心管理系统 XXE漏洞复现
0x01 产品简介 深信服数据中心管理系统DC为AC的外置数据中心,主要用于海量日志数据的异地扩展备份管理,多条件组合的高效查询,统计和趋势报表生成,设备运行状态监控等功能。 0x02 漏洞概述 深信服数据中心管理系统DC存在XML外部实…...
【Kubernetes】Kubernetes的Pod进阶
Pod进阶 一、资源限制和重启策略1. 资源限制2. 资源单位2.1 CPU 资源单位2.2 内存 资源单位 3. 重启策略(restartPolicy) 二、健康检查的概念1. 健康检查1.1 探针的三种规则1.2 Probe 支持三种检查方法 2. 示例2.1 exec 方式2.2 httpGet 方式2.3 tcpSock…...
都错了!机械硬盘远比SSD更省电 最多领先94%
相信在绝大多数人的认知中,SSD固态硬盘因为没有HDD机械硬盘那样的移动部件,不但更稳定,还更省电。 但是,存储服务商Scality的研究表明,恰恰相反,HDD更省电。 他们以美光6500 ION 30.72TB QLC SSD、希捷银河…...
tomcat设置PermSize
最近tomcat老是报错,查看了日志出现PermGen 内存不够用,重启tomcat后查询使用情况 通过启动参数发现没有设置 PermGen,继续通过jmap查看 jmap -heap 21179 发现99%已使用,而且默认是30.5M,太小了,这里设置成256M 1. 创建setenv.sh文件 在/usr/local/tomcat/bin目录下创建一个…...
JVM——分代收集理论和垃圾回收算法
一、分代收集理论 1、三个假说 弱分代假说:绝大多数对象都是朝生夕灭的。 强分代假说:熬过越多次垃圾收集过程的对象越难以消亡。 这两个分代假说共同奠定了多款常用的垃圾收集器的一致的设计原则:收集器应该将Java堆划分出不同的区域&…...
jar包独立运行的几种方式
linux启动jar包的方式,直接运行与守护进程运行 通常我们开发好的程序需要打成war/jar包,在linux运行,war包好说直接丢在tomcat中即可,如果开发好的程序为jar包的话,方式比较多 直接启动(java-jar xxx.jar) java -jar shareniu.jar 特点:当前ssh窗口被锁定&#x…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
