http協議中可能存在資訊竊聽或者身份偽裝等安全問題,
http主要有這些不足:
1、 通訊使用明文(不加密),內容可能會被竊聽
由於 HTTP 本身不具備加密的功能,所以也無法做到對通訊整體(使 用 HTTP 協議通訊 的請求和響應的內容)進行加密。即,HTTP 報文 使用明文(指未經過加密的報文)方 式傳送。
TCP/IP 是可能被竊聽的網路 如果要問為什麼通訊時不加密是一個缺點,這是因為,按TCP/IP 協議族的工作機制,通訊內容在所有的通訊線路上都有 可能遭到窺視。 所謂網際網路,是由能連通到全世界的網路組成的。無論世界哪個 角落的伺服器在和客戶端通訊時,在此通訊線路上的某些網路設 備、光纜、計算機等都不可能是個人的私有物,所以不排除某個 環節中會遭到惡意窺視行為。 即使已經過加密處理的通訊,也會被窺視到通訊內容,這點和未 加密的通訊是相同的。只是說如果通訊經過加密,就有可能讓人 無法破解 報文資訊的含義,但加密處理後的報文資訊本身還是會 被看到的
2、不驗證通訊方的身份就可能遭遇偽裝
HTTP 協議中的請求和響應不會對通訊方進行確認。也就是說存在“服 務器是否就是傳送請求中 URI 真正指定的主機,返回的響應是否真的 返回 到實際提出請求的客戶端”等類似問題。
任何人都可發起請求
在 HTTP 協議通訊時,由於不存在確認通訊方的處理步驟,任何 人都可以發 起請求。另外,伺服器只要接收到請求,不管對方是 誰都會返回一個響應(但也僅限於傳送端的 IP 地址和埠號沒 有被 Web 伺服器設定限制訪問的前提下)。
2.1、 無法確定請求傳送至目標的 Web 伺服器是否是按真實意 圖返回響應的那臺伺服器。 有可 能是已偽裝的 Web 服務 器。
2.2、無法確定響應返回到的客戶端是否是按真實意圖接收響 應的那個客戶端。 有可能是已偽裝 的客戶端。
2.3、無法確定正在通訊的對方是否具備訪問許可權。 因為某些 Web 伺服器上儲存著重要的資訊只想發給特定使用者通 信的許可權。
2.4、 無法判定請求是來自何方、出自誰手。 即使是無意義的請求也會照單全收。 無法阻止海量請 求下的 DoS 攻擊(Denial of Service, 拒絕服務攻擊)。
3 無法證明報文完整性, 可能已遭篡改
由於 HTTP 協議無法證明通訊的報文完整性,因此,在請求或響 應送出之後直到對方接收之前的這段時間內,即使請求或響應的 內容遭到篡改,也沒有辦法獲悉。 換句話說,沒有任何辦法確認,發出的請求 / 響應和接收到的請 求 / 響應是前後相同的。
比如,從某個 Web 網站上下載內容,是無法確定客戶端下載的 檔案和伺服器上存放的檔案是否前後一致的。檔案內容在傳輸途 中可能已經被篡改為其他的內容。即使內容真的已改變,作為接 收方的客戶端也是覺察不到的。
像這樣,請求或響應在傳輸途中,遭攻擊者攔截並篡改內容的攻 擊稱為中間人攻擊(Man-in-the-Middle attack,MITM)。