HTTPS協議中POST的資料是被加密的嗎?

時間 2021-05-30 14:42:50

1樓:孫同學

網路協議都是分層的, 一般上層協議是作為下層協議的 Body 部分, HTTPS 不是乙個單獨的協議, 而是 HTTP over TLS, 樸素的 HTTP 使用 TCP 作為傳輸層協議, 所有的資料報都是明文, 因而可以被輕易的截獲/監聽/篡改, HTTPS 在 HTTP 和 TCP 之間引入了 TLS 層, 雙方仍然通過 TCP 進行傳輸, 但 TCP 資料不是直接交付給 HTTP 應用層, 而是先交付給 TLS 層, 在 TLS 握手過程中會交換金鑰/校驗證書等, TLS 握手完成之後, 所有資料都是加密傳輸的了(實際上是服務端傳送 ServerHello 之後就是加密的了, 具體細節可以看 RFC 8446), HTTP 的所有資料 (Header 和 Payload) 都是作為 TLS record 來傳輸的, 所有資料都是加密的, 中間即便被截獲也無法得到明文

2樓:Hito

乙個典型的POST如下:

name=user&password=password注意Content-length的長度是下面資料的長度。

當不使用加密時,這段資料直接在網上傳播,可以被監聽並破解。

HTTPS加密則是把這些資訊扔到乙個黑盒子(SSL層進行包裝)裡,讓這個黑盒子在網上傳播,可以被監聽,但只有對應的金鑰才能解開。

3樓:wuxinliulei

HTTP是應用層的協議

再看計算機網路協議從應用層開始向下利用下層協議的原理就是在每層增加相應的頭部資訊。

下面是應用層協議HTTP

下面是TCP協議報文,資料部分填充的就是HTTP協議的內容然後回答題主的問題,HTTP協議是整體被加密填充到TCP協議的報文資料部分的,所以不僅僅是post的資料部分

4樓:

應該是先客戶端先加密,後傳輸。SSL跟TLS不是一回事,但他們很相似,TLS是SSL的繼任者。

SSL是個二進位制協議,HTTP是個字元型協議。如果位址以HTTPS開頭的話,客戶端會先用HTTP協議連線目標伺服器的80埠,(這個過程是不加密的)。這個過程交換雙方協議的版本號,選擇雙方都了解的密碼,對雙方身份進行驗證,生成臨時的會話密匙。

接著,客戶端利用相應的引數跟伺服器進行通訊,從這裡開始就開始加密了。

5樓:余天公升

HTTP本身所有的資料都是不加密的。準確的說,HTTPS不是一種協議,而是HTTP和SSL兩種技術的組合。

SSL是Secure Socket Layer,安全套接字層,有時也成為TLS(Transport Layer Security),是介於傳輸層和應用層的乙個拓展的層,可以透明的將應用層資料加密然後通過傳輸層送出去。因此,使用了SSL傳輸的HTTP報文,從HTTP Headers到主體都是加密的

PHP開發中,POST方法接收的表單資料,需要經過哪些驗證來避免SQL注入?

黃良懿 注入主要有兩個方式,乙個是通過包括單引號和飯斜槓在內的字元變更原SQL語義,另外乙個則是在數值型別下不需要以上兩個特殊字元就可以通過or或and等行為改變SQL語義,甚至是通過逗號中斷原SQL並隨後附帶INSERT UPDATE DELETE等操作。後者又稱為盲注 Blind Injecti...

PHP 中的 GET 與 POST 有什麼區別?

modour 網路傳輸協議如http等是一種命令系統,命令系統一般格式是 op opdata http的get,post屬於命令,url,header,body等屬於資料。其區別 1 語義上的不同,即命令的目的是什麼 get 獲取資源 要求安全和冪等 post 修改資源 2 語法上的不同,即opda...

802 11協議從ap到sta資料傳輸的過程是怎樣的

ll dd 你sta關聯上ap之後,ap會記錄每個sta mac 位址的,乙個例子 sta 應用層開啟乙個網頁,遠端伺服器到ap後,ap知道這個資料報目的地的IP位址 也就是sta的ip位址 在sta關聯上ap之後其實還有個arp協議互交過程,可以簡單理解為,ap和sta互相知道兩者之間從mac位址...