HTTPS URL 傳參安全嗎?

歡迎訪問陳同學博客原文
原文:How Secure Are Query Strings Over HTTPS? by HttpWatch
譯者:陳同學
譯者注:有人說他抓包能抓到HTTPS中的URL參數,我就納悶了,翻譯一篇小短文學習一下。

請求參數能通過URL安全傳遞嗎? 當客戶看到 HttpWatch 中的 HTTPS請求後經常會問這個問題,同時客戶也想知道還有誰能看到這些數據。

舉個例子,假設我們使用以下URL在請求查詢參數中傳遞密碼。

https://www.httpwatch.com/?password=mypassword

由於 HttpWatch 集成在瀏覽器中,因此可以看到SSL加密前的數據。

如果你使用像 Network Monitor 這樣的抓包工具,會發現只能看到加密後的數據,根本看不到請求的 URLs、Headers 或 Body

只要滿足以下幾點,HTTPS肯定是安全的。

  • 不要忽略任何 SSL 證書警告
  • 保護好用來初始化SSL連接的 private key

因此,從網絡角度來說,URL參數肯定是安全的。但是,一些其他地方可能泄漏URL上的數據:

  • Web server 日誌中會存儲URLs:URL一般會存儲在日誌中,這意味着任何敏感數據(如密碼)都會被明文存儲,下面是一行日誌:

    2009-02-20 10:18:27 W3SVC4326 WWW 208.101.31.210 GET /Default.htm password=mypassword 443 ...
    

    在任何地方明文存儲密碼都不是件好事情

  • 瀏覽器的歷史記錄會存儲URLs:下面是IE瀏覽器的歷史記錄,可以看到URL參數。

  • URLs可以通過HTTP Referrer 頭傳遞:當頁面中使用了js、images等資源時,請求頭的Referrer屬性會一起傳遞。有時,URL上的查詢參數可能會傳遞到第三方站點並被存儲起來。在 HttpWatch 中可以看到,Google Analytics 請求中,通過 Referer 頭傳遞的URL中帶有密碼。

小結:HTTPS傳遞查詢參數肯定是沒有問題的,但是不要用來傳遞可能引發安全問題的敏感信息奧。


歡迎關注陳同學的公衆號,一起學習,一起成長

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章