post seo - HTTPS URL是否被加密?




page check (10)

使用TLS / SSL(HTTPS)加密時,所有的URL都被加密了嗎? 我想知道,因為我希望在使用TLS / SSL(HTTPS)時隱藏所有URL數據。

如果TLS / SSL為您提供總體URL加密,那麼我不必擔心隱藏URL中的機密信息。


Answers

由於沒有人提供線捕捉,這裡是一個。
服務器名稱 (URL的域部分)以明文形式顯示在ClientHello數據包中。

以下顯示瀏覽器請求:
https://i.stack.imgur.com/path/?some=parameters&go=here

有關 TLS版本字段的更多信息, 請參閱此答案 (其中有3個版本 - 不是版本,每個字段都包含版本號)!

https://www.ietf.org/rfc/rfc3546.txt

3.1。 服務器名稱指示

[TLS]沒有為客戶端提供一種機制來告訴服務器與其聯繫的服務器的名稱。 客戶可能希望提供這些信息,以便於在單個底層網絡地址上連接到託管多個“虛擬”服務器的服務器。

為了提供服務器名稱,客戶端可以在(擴展)客戶端hello中包含“server_name”類型的擴展名。


簡而言之:

  • 如果使用SNI擴展名,則FQDN(URL的域部分) 可以 清楚地ClientHello數據包內傳輸

  • 由於請求URL是一個HTTP事物(OSI第7層),URL的其餘部分( /path/?some=parameters&go=here )在ClientHello內沒有業務,因此它永遠不會出現在TLS握手中(第4層或5)。 稍後會在GET /path/?some=parameters&go=here HTTP/1.1 HTTP請求後,安全 TLS通道建立之後。


執行摘要

域名可以明文傳輸(如果在TLS握手中使用SNI擴展),但URL(路徑和參數)始終是加密的。


是的,SSL連接位於TCP層和HTTP層之間。 客戶端和服務器首先建立一個安全的加密TCP連接(通過SSL / TLS協議),然後客戶端將通過該加密的TCP連接發送HTTP請求(GET,POST,DELETE ...)。


整個請求和響應都是加密的,包括URL。

請注意,當您使用HTTP代理服務器時,它知道目標服務器的地址(域),但不知道此服務器上請求的路徑(即請求和響應始終加密)。


你不能總是依靠整個URL的隱私。 例如,企業網絡中的情況就是如此,您公司PC等提供的設備配置有額外的“可信”根證書,以便您的瀏覽器可以安靜地信任https流量的代理(中間人)檢測。 這意味著完整的URL將被公開以供檢查。 這通常保存到日誌中。

此外,您的密碼也被暴露並可能被記錄下來,這是使用一次性密碼或頻繁更改密碼的另一個原因。

最後,如果不加密,請求和響應內容也會暴露。

檢查點在這裡描述檢查設置的一個例子。 使用提供的PC的老式“網吧”也可以這樣設置。


我同意以前的答案:

明確:

使用TLS時,URL的第一部分( https://www.example.com/ )在構建連接時仍然可見。 第二部分(/ herearemygetparameters / 1/2/3/4)受TLS保護。

但是,有多種原因不應將參數放入GET請求中。

首先,正如其他人已經提到的那樣: - 通過瀏覽器地址欄洩漏 - 通過歷史漏洞

除此之外,您還通過http referer洩漏了URL:用戶在TLS上看到站點A,然後單擊到站點B的鏈接。如果兩個站點都在TLS上,則對站點B的請求將包含來自站點A的完整URL請求的referer參數。 而站點B的管理員可以從服務器B的日誌文件中檢索它。)


除了Marc Novakowski提供的有用答案之外 - 該URL存儲在服務器的日誌中(例如,在/ etc / httpd / logs / ssl_access_log中),因此如果您不希望服務器維護更長的信息不要把它放在URL中。


鏈接到我的答案重複的問題 。 不僅瀏覽器歷史記錄中可用的URL,服務器端日誌,還會將其作為HTTP Referer標頭髮送,如果您使用第三方內容,則會將URL暴露給您的控制之外的來源。


我將在這裡進行一次飛躍,並假設您的意思是https請求的“GET”部分。

在那種情況下,是和不是。 URL的服務器地址部分顯然沒有加密,因為它用於建立連接。

其他所有內容都通過HTTPS連接進行加密。 但是,如果您使用的是GET而不是POST,那麼用戶仍然可以從地址欄中剪切和粘貼URL,並且您可能不希望將機密信息放在那裡,任何看到屏幕的人都可以看到。

所有這一切說,你應該小心你的術語。 引用一個著名的swashbuckler:你繼續使用這個詞(URL)我不認為這意味著你的想法意味著....


正如other answers已經指出的那樣,https“URL”確實是加密的。 但是,解析域名時的DNS請求/響應可能不是,當然,如果您使用的是瀏覽器,您的URL也可能會被記錄。


使用SSL時,加密處於傳輸級別,因此它在發送請求之前發生。

因此請求中的所有內容都被加密。





http post ssl https httprequest