安全頭響應頭(三)?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文件引用失敗

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38971.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38971.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38971.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mybatis 源碼 ∞ :雜七雜八

文章目錄 一、前言二、TypeHandler三、KeyGenerator四、Plugin1 Interceptor2 org.apache.ibatis.plugin.Plugin3. 調用場景 五、Mybatis 嵌套映射 BUG1. 示例2. 原因3. 解決方案 六、discriminator 標簽七、其他1. RowBounds2. ResultHandler3. MapKey 一、前言 Mybatis 官網…

mysql主從復制搭建(一主一從)

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言MySQL復制過程分為三部&#xff1a; 一、準備工作二、配置>主庫Master三、配置>從庫SlaveSlave_IO_Running: YesSlave_SQL_Running: Yes 四、測試至此&am…

8 | 美國航班數據分析

"在現代快節奏的生活中,航空旅行已經成為人們出行的重要方式之一。然而,航班的準時性一直以來都是旅客和航空公司關注的焦點。無論是商務出差還是休閑度假,乘客們都希望能夠在既定的時間內安全、準時地到達目的地。而對于航空公司而言,準點運營不僅關乎乘客體驗,還涉…

TCP的相關性質

文章目錄 流量控制擁塞控制擁塞窗口 延遲應答捎帶應答面向字節流粘包問題TCP的異常 流量控制 由于接收端處理數據的速度是有限的&#xff0c;如果發送端發的太快&#xff0c;那么接收端的緩沖區就可能會滿。此時如果發送端還發數據&#xff0c;就會出現丟包現象&#xff0c;并…

輕量級自動化測試框架WebZ

一、什么是WebZ WebZ是我用Python寫的“關鍵字驅動”的自動化測試框架&#xff0c;基于WebDriver。 設計該框架的初衷是&#xff1a;用自動化測試讓測試人員從一些簡單卻重復的測試中解放出來。之所以用“關鍵字驅動”模式是因為我覺得這樣能讓測試人員&#xff08;測試執行人員…

【Sklearn】基于線性判別法的數據分類預測(Excel可直接替換數據)

【Sklearn】基于線性判別法的數據分類預測(Excel可直接替換數據) 1.模型原理2.模型參數3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 線性判別分析(Linear Discriminant Analysis,簡稱LDA)是一種經典的模式識別和分類方法,它的目標是找到一個投影,將…

Linux系列講解 —— FTP協議的應用

簡單介紹一下FTP文件傳輸協議在linux系統中的應用。 目錄 0. 基本概念1. FTP Server1.1 安裝FTP Server1.2 FTP Server開啟和關閉1.3 查看FTP Server是否開啟1.4 FTP服務器配置 2. FTP Client2.1 lftp2.2 ftp2.3 sftp2.4 文件資源管理器集成的ftp和sftp 3. ftp常用命令 0. 基本…

IDE的下載和使用

IDE 文章目錄 IDEJETBRAIN JETBRAIN 官網下載對應的ide 激活方式 dxm的電腦已經把這個腳本下載下來了&#xff0c;腳本是macjihuo 以后就不用買了

Neo4j之SET基礎

在 Neo4j 中&#xff0c;SET 語句用于更新節點或關系的屬性。它允許你修改節點或關系的屬性值&#xff0c;可以單獨使用&#xff0c;也可以與其他查詢語句&#xff08;如 MATCH、CREATE、MERGE 等&#xff09;一起使用。以下是一些使用 SET 語句的常見例子&#xff0c;以及它們…

深入源碼分析kubernetes informer機制(四)DeltaFIFO

[閱讀指南] 這是該系列第四篇 基于kubernetes 1.27 stage版本 為了方便閱讀&#xff0c;后續所有代碼均省略了錯誤處理及與關注邏輯無關的部分。 文章目錄 client-go中的存儲結構DeltaFIFOdelta索引 keyqueue push操作delta push 去重 queue pop操作 總結 client-go中的存儲結構…

設計模式

本文主要介紹設計模式的主要設計原則和常用設計模式。 一、UML畫圖 1.類圖 2.時序圖 二、設計模式原則 1.單一職責原則 就是一個方法、一個類只做一件事&#xff1b; 2.開閉原則 就是軟件的設計應該對拓展開放&#xff0c;對修改關閉&#xff0c;這在java中體現最明顯的就…

什么是A股交易接口_(股票交易c接口)開發原理

A股交易接口是指用于與國內的證券交易所&#xff08;上海證券交易所和深圳證券交易所&#xff09;進行股票買賣交易的電子接口或軟件系統。A股交易接口是金融機構、券商以及個人投資者的必備掌握操作技能之一&#xff0c;它提供了實時的股票行情、交易下單、撤單、查詢賬戶信息…

基于Hadoop的表級監管

現狀 大數據平臺中,采用hadoop的方式存儲數據,hdfs本質上是文件系統,而文件系統對數據的監管能力有限,但是數據安全領域問題日漸凸顯,現目前,大數據平臺一般以分層結構進行授權,但是對于一線開發人員而言,是能夠接觸到整個大數據平臺中的所有表的,那么如何實現這樣一…

yum install/update排除特定/某些包方式

1 什么是 yum&#xff1f; yum 代表 “Yellowdog Updater, Modified”。Yum 是用于 rpm 系統的自動更新程序和包安裝/卸載器。 它在安裝包時自動解決依賴關系。 2 什么是 rpm&#xff1f; rpm 代表 “Red Hat Package Manager”&#xff0c;它是一款用于 Red Hat 系統的功能…

PB:庫管理函數

庫管理函數 1、LibraryCreate() 功 能:創建一個空的PowerBuilder應用庫,并可根據需要在創建應用庫的同時添加庫注解。 語 法:LibraryCreate ( libraryname{, comments } ) 參 數:libraryname:string類型,指定要創建應用庫的名稱,可以帶上路徑,不帶路徑時在當前目…

Docker本地鏡像發布到阿里云

1. 本地鏡像發布到阿里云 2. 鏡像的生成方法 OPTIONS說明&#xff1a; -a :提交的鏡像作者&#xff1b; -m :提交時的說明文字&#xff1b; 本次案例centosubuntu兩個&#xff0c;當堂講解一個&#xff0c;家庭作業一個&#xff0c;請大家務必動手&#xff0c;親自實操。 docke…

Gradio部署應用到服務器不能正常訪問

用Gradio部署一個基于ChatGLM-6B的應用&#xff0c;發布到團隊的服務器上&#xff08;局域網&#xff0c;公網不能訪問&#xff09;&#xff0c;我將gradio應用發布到服務器的9001端口 import gradio as gr with gr.Blocks() as demo:......demo.queue().launch(server_port90…

ad+硬件每日學習十個知識點(34)23.8.14 (DCDC詳細設計,續流二極管的選擇,COMP引腳的環路設計)

文章目錄 1.二極管的rrm電壓和rms電壓有什么不同2.DCDC續流二極管的選擇3.充電電容4.COMP引腳的環路設計5.DCDC設計總結6.多路并聯7.相位匹配8.工作模式9.低溫輸出偏離10.電源負載與效率11.降壓升壓模塊 1.二極管的rrm電壓和rms電壓有什么不同 答&#xff1a; 二極管的 RRM &a…

redis主從復制、哨兵服務、持久化、數據類型

Top NSD DBA DAY10 案例1&#xff1a;配置主從復制案例2&#xff1a;配置帶驗證的主從復制案例3&#xff1a;哨兵服務案例4&#xff1a;使用RDB文件恢復數據案例5&#xff1a;AOF案例6&#xff1a;字符類型案例7&#xff1a;列表類型案例8&#xff1a;散列類型案例9&#xff…

Linux交叉編譯opencv并移植ARM端

Linux交叉編譯opencv并移植ARM端 - 知乎 一、安裝交叉編譯器 目標平臺為arm7l&#xff0c;此為32位ARM架構&#xff0c;要安裝合適的編譯器 sudo apt install arm-linux-gnueabihf-gcc sudo apt install arm-linux-gnueabihf-g注意&#xff1a;64位ARM架構的編譯器與32位ARM架…