05.14 Java高級編程細節——HTTP協議又冷又實用的技能大全!

Http協議作為java高級必備的一個知識,是一個架構師必須要研究的,因為,沒有哪個app不需要網絡,那麼網絡基本都會需要使用Http協議。問題就在於我們真的懂HTTP嗎?今日就由小編帶您一起來

1、如果不用HTTPS,HTTP協議如何安全的傳輸密碼信息?

HTTP協議是純文本協議,沒有任何加密措施。通過HTTP協議傳輸的數據都可以在網絡上被完全監聽。如果用戶登陸時將用戶名和密碼直接明文通過HTTP協議傳輸過去了,那麼密碼可能會被黑客竊取。

一種方法是使用非對稱加密。GET登陸頁面時,將公鑰以Javascript變量的形式暴露給瀏覽器。然後用公鑰對用戶的密碼加密後,再將密碼密文、用戶名和公鑰一起發送給服務器。服務器會提前存儲公鑰和私鑰的映射信息,通過客戶端發過來的公鑰就可以查出對應的私鑰,然後對密碼密文進行解密就可以還原出密碼的明文。

為了加強公鑰私鑰的安全性,服務器應該動態生成公鑰私鑰對,並且使用後立即銷燬。但是動態生成又是非常耗費計算資源的,所以一般服務器會選擇Pool方法提供有限數量的公鑰私鑰對池,然後每隔一段時間刷新一次Pool。

Java高級編程細節——HTTP協議又冷又實用的技能大全!

2、文件路徑攻擊

很多操作系統都會使用..符號表示上層目錄。如果黑客在URL的路徑裡面使用..符號引用上層目錄,而服務器沒有做好防範的話就有可能導致黑客可以直接訪問權限之外的文件。比如使用多級..符號就可以引用到根目錄,進一步就可以訪問任意文件。

所以很多服務器都禁止在URL路徑裡出現..符號以避免被攻擊。

文件路徑攻擊也是很多黑客非常喜愛使用的攻擊方法之一。如果你的服務器有一定的訪問量,打開你的nginx日誌,你就會偶爾發現有一些奇怪的URL裡面有一堆..符號,這種URL的出現就表示網絡上的黑客正在嘗試攻擊你的服務器。

3、DNS欺騙

HTTP協議嚴重依賴於DNS域名解析。任意一個域名類網址的訪問都需要經過域名解析的過程得到目標服務的IP地址才能成功繼續下去。

如果掌管DNS服務的運營商作惡將域名解析到不正確的IP,指向一個釣魚的網頁服務。用戶如果沒有覺察,就可能會將自己的敏感信息提交給冒牌的服務器。

Java高級編程細節——HTTP協議又冷又實用的技能大全!

4、謹慎使用外部的HTTP代理

HTTP代理作為客戶端到服務器之間的中間路由節點,它起到傳話人和翻譯官的角色。

如果這個翻譯官不靠譜的話,客戶端是會拿到錯誤的返回數據的。它同DNS欺騙一樣,是可以對客戶端進行釣魚攻擊的。

如果這個翻譯官口風不嚴的話,它可能會將它聽到的敏感信息洩露給別人

Java高級編程細節——HTTP協議又冷又實用的技能大全!

5、413 Request Entity Too Large

客戶端上傳圖片太大超過服務器限制時,服務器返回413錯誤。

6、414 Request-URI Too Long

客戶端訪問的URI太長,超出了服務器允許限制,服務器返回414錯誤。

6.1更多細節,更多java編程知識,請關注我的頭條,歡迎點贊,歡迎評論轉發

7、202 Accepted

常用於異步請求。客戶端發送請求到服務器,服務器立即返回一個202 Accepted表示已經成功接收到客戶端的請求。

後面怎麼處理由服務器自己決定,一般服務器會給客戶端預留一個可以查詢處理狀態的接口,客戶端可以選擇輪訓該接口來知道請求的處理進度和結果。

更多Java高級知識,請大家加秋群 731-242-239

Java高級編程細節——HTTP協議又冷又實用的技能大全!


分享到:


相關文章: