網站https 問題記錄

来源:https://www.cnblogs.com/smileZAZ/archive/2023/03/13/17212241.html
-Advertisement-
Play Games

這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 開發過程中 常見的 https 問題 - 避坑 做前端多年,發現有些問題需要重覆解決很多次,浪費了不少時間,https 導致的問題就屬於其中的一種,被不同崗位的同事問過很多次。 這篇關於 https 的科普文,趕緊安利給團隊的相關小伙伴看 ...


這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助

開發過程中 常見的 https 問題 - 避坑

做前端多年,發現有些問題需要重覆解決很多次,浪費了不少時間,https 導致的問題就屬於其中的一種,被不同崗位的同事問過很多次。 這篇關於 https 的科普文,趕緊安利給團隊的相關小伙伴看看吧,從此再也不會有人找你解決 https 相關的 bug,又多了一些摸魚的時間,爽(巴適得很)。

註:本篇文章提到的瀏覽器都是指 chrome 瀏覽器

案例 1 - 下載資源失敗或圖片載入失敗 - “Mixed Content”問題

在 https 網站中發起的 http 請求被禁止

這是因為最新版本的 chrome 提高了用戶安全策略,保護用戶免受不安全下載的侵害(點擊這裡查看 chrome 文檔 Protecting users from insecure downloads)

註意:

  1. https 協議的網站中不允許存在 http 協議的請求
  2. http 協議的網站中允許訪問 https 協議的資源

案例 2 - 瀏覽器提示網站不安全 記住的賬戶密碼不能自動填充 - 證書錯誤問題

提示不安全是因為 chrome 認為 當前網站存在信息泄漏的風險。

檢查當前網站協議是否為 https:
如果是 https 的話有兩種可能,一種是當前網站被標記為不安全,另一種是 https 證書無效、過期了。
如果是 http 的話,需要升級當前網站協議為 https。

chrome 瀏覽器對 http 協議的限制很多,所以運維在部署網站的時候大概率是需要申請 https 協議的。

賬號密碼不能自動填充是因為 chrome 記住密碼功能記住的網站是包含功能變數名稱、協議和埠的,其中一個變化了都不能自動填充。

註意:

  1. 項目部署後同時給功能變數名稱申請 https 安全協議
  2. 運維需要關註 https 自動續費,以免影響線上環境

案例 3 - webpack-dev-server 代理的後端服務 忽然報 CORS 錯誤 - 強制使用 https 問題

 

看控制台報錯,意思是後端服務自動跳轉到另一個服務了,而那個服務未開啟 cors 策略。 遇到這個問題的時候我很迷惑,跳轉的這個功能變數名稱也是非常規的功能變數名稱,以為是後端某位同學的服務註冊到線上了,但是經過觀察,發現線上環境沒有影響,只有本地開發環境的請求會報錯。
如果是後端本地服務註冊到線上,那麼線上和本地都應該是隨機訪問到這個同學的服務而報錯。
最後想到本地和線上的不同,就是一個是 http,一個是 https,在瀏覽器直接訪問後端的服務發現,後端服務開啟了 http 自動升級 https,因此所有 http 協議的請求都不能通過了。
查看後端服務的 nginx 配置,可以看到所有請求都配置了 301 重定向。

修改本地使用的後端服務協議為 https 解決此問題。

總結

總的來說,一個前端將會遇到的 https 問題大概有以下 3 種:

  1. Mixed Content 錯誤:
    當網站同時使用 HTTPS 和 HTTP 的資源時,例如在 HTTPS 的網站中引入 HTTP 的圖片、CSS、JavaScript 等文件,瀏覽器會提示“Mixed Content”錯誤,這是因為 HTTP 的資源容易被惡意攻擊者利用。解決方法是將所有資源都使用 HTTPS 進行載入。

  2. 證書錯誤:
    在使用 HTTPS 時,需要使用 SSL 證書來驗證網站的身份。如果證書無效、已過期或不受信任,瀏覽器會提示證書錯誤。解決方法是獲取有效的 SSL 證書,並將其安裝到 Web 伺服器中。

  3. HSTS:
    HSTS(HTTP Strict Transport Security)是一種安全機制,可以強制瀏覽器只使用 HTTPS 連接訪問網站。如果網站啟用了 HSTS,瀏覽器會自動將 HTTP 請求重定向到 HTTPS。在開發過程中,需要註意是否啟用了 HSTS,以避免由於 HSTS 導致的連接問題。

tips

  • https 是絕對安全的?
    https 也能被抓包,但是抓到之後攻擊者由於沒有私鑰所以也無法解密,抓到也沒有用。https 的安全是基於對證書頒發機構的信任的,也不能算是 100% 的安全。

  • 為什麼說非對稱加密效率不高 速度慢 具體體現在哪裡?
    對稱加密本質上是位運算包含位移和替換,非對稱加密包含大量大數乘法、大數模計算(RSA 的核心演算法是歐拉定理)。 AES 演算法的底層原理RSA 演算法詳解

  • 登錄密碼需要加密?
    如果說是為了防止被抓包,那沒必要,因為 https 已經做了數據加密,即使是被抓包了也是加密過的數據。 如果說是為了防止部分用戶存在一個密碼多個網站使用的情況下,密碼泄漏導致多個網站密碼泄漏,那就是有意義的。

  • 請求參數有必要加密?
    請求的參數沒必要加密,因為 https 本身會加密數據,服務端接收到之後會自動解密,如果再加一層加密,無疑增加了響應時間。 使用額外的加密層會增加網路負載和系統資源開銷

  • 響應數據有必要加密?
    根據上一條響應數據也沒必要加密,另外,響應體整體加密也沒必要,感興趣的同學可以看這篇response body 加密了怎麼辦? 來 破解它

本文轉載於:

https://juejin.cn/post/7208466455880417317

如果對您有所幫助,歡迎您點個關註,我會定時更新技術文檔,大家一起討論學習,一起進步。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 許可權基本介紹 drwxr-xr-x. 3 laffy snow 4096 3月 9 16:17 test 第1位:文件類型(d,-,l,c,b) d 文件夾 - 普通文件 l 軟鏈接 c 字元設備文件,如滑鼠鍵盤 b 塊設備,如硬碟 第2-4位:確定文件所有者對文件的許可權 第5-7位:確定文件所 ...
  • 在 WebAssembly 中使用 Rust 編寫 eBPF 程式併發布 OCI 鏡像 作者:於桐,鄭昱笙 eBPF(extended Berkeley Packet Filter)是一種高性能的內核虛擬機,可以運行在內核空間中,以收集系統和網路信息。隨著電腦技術的不斷發展,eBPF 的功能日益強 ...
  • 摘要:行存表示了一種數據的存儲方式,是最傳統的一種存儲方式。 本文分享自華為雲社區《【玩轉PB級數倉GaussDB(DWS)】行列存對比的一些事》,作者:sevenjiang。 行存表示了一種數據的存儲方式,是最傳統的一種存儲方式。對於GaussDB(DWS)來說可以認為其表示存儲引擎的基礎實現,在 ...
  • 摘要:集群運行過程中,有時候會執行併發量比較高的業務場景,一些資料庫沒有為這種高併發作業配置合適的參數,會導致作業大量報錯,這篇文章讓你玩轉併發作業。 本文分享自華為雲社區《【玩轉PB級數倉GaussDB(DWS)】線上運維 - 高併發導致資源類報錯分析解決》,作者:323老四。 集群運行過程中,有 ...
  • 資料庫的基本概念 資料庫(database)是用來組織、存儲和管理數據的倉庫。對資料庫中的數據可以進行增刪改查操作。市面上常見的資料庫有: MySQL(使用最廣泛。流行度最高的開源免費資料庫 Community+Enterprise) Oracle(收費) SQL Server(收費) Mongod ...
  • 1.新增特性 2.穩定性提升 3.其他調整 4.bug修複 5.GreatSQL VS MySQL社區版 6.GreatSQL Release Notes Changes in GreatSQL 8.0.25-17(2023-3-13) GreatSQL 8.0.25-17 是一個微小改進版本,主要 ...
  • 引言 在實際的業務統計需求中 有時往往需要對區間進行分組統計查詢,如分數區間,工資區間查詢統計等!mysql中可以利用elt函數來實現此類需求! 接下來看如下時間業務需求: 1:現在要進行統計,小於100的,100~500的,500~1000的,1000以上的,這各個區間的id數 mysql> se ...
  • 好家伙,本篇為《JS高級程式設計》第二十六章“模塊”學習筆記 JS開發會遇到代碼量大和廣泛使用第三方庫的問題。 解決這個問題的方案通 常需要把代碼拆分成很多部分,然後再通過某種方式將它們連接起來。 若代碼量較大,我們使用模塊化開發的模式,也能夠使代碼容易維護 我們需要模塊 1.模塊模式 把邏輯分塊, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...