天天看點

URL、HTTPS、HTTP代理、HTTP身份驗證簡介

URL(Uniform Resource Locator,統一資源定位符)是辨別Web資源的唯一辨別符.通過它即可擷取其辨別的資源。最常用的URL格式如下:

這個結構中有幾個部分是可選的。如果端口号與相關協定使用的預設值不同,則隻包含端口号即可。用于生成前面的HTTP請求的URL為:

除這種絕對形式外,還可以相對某一特殊主機或主機上的一個特殊路徑指定URL,例如:

Web頁面常常使用這些相對形式描述Web站點或應用程式中的導航

  HTTP使用普通的非加密TCP作為其傳輸機制.是以,處在網絡适當位置的攻擊者能夠截取這個機制。HTTPS本質上與HTTP一樣,都屬于應用層協定.但HTTPS通過安全傳輸機制—安全套接層(Secure Socket Layer, SSL)一旦專送資料。這種機制可保護通過網絡傳送的所有資料的隐密性與完整性,顯著降低非人侵性攔截攻擊的可能性。不管是否使用SSL進行傳輸,HTTP請求與響應都以完全相同的方式工作。

  HTTP代理伺服器是一個協調用戶端浏覽器與目标Web伺服器之間通路的伺服器。當配置浏覽器使用代理伺服器時.它會将所有請求送出到代理伺服器,代理伺服器再将請求轉送給相關Web伺服器。并将響應傳回給浏覽器。大多數代理還使用其他服務,如緩存、驗證與通路控制。值得注意的是,如果使用代理伺服器,HTTP的工作機制會出現兩方面的差異。

當浏覽器向代理伺服器釋出HTTP請求時,它會将完整的URL(包括協定字首 http://與伺服器主機名稱,在非标準URL中,還包括端口号)插人請求中。代理伺服器将提取主機名稱和端口,并使用這些資訊将請求指向正确的目标Web伺服器。

當使用HTTPS時.浏覽器無法與代理伺服器進行SSL握手.因為這樣做會破壞安全隧道,使通信易于遭受攔截攻擊。是以.浏覽器必須将代理作為一個純悴的TCP級中繼,由它傳遞浏覽器與目标Web浏覽器之間的所有網絡資料,并與浏覽器進行正常的SSL握手。浏覽器使用CONNECT方法向代理伺服器送出一個HTTP請求.并指定URL中的目标主機名稱與端口号.進而建立這種中繼。如果代理允許該請求,它會傳回一個含200狀态碼的HTTP響應,一直開放TCP連接配接.從此以後作為目标Web伺服器的純梓TCP級中繼。

  從某種程度上說,攻擊Web應用程式時最有用的工具是一個處在浏覽器與目标Web站點之間的專用代理伺服器,使用它可以攔截并修改所有使用HTTPS的請求與響應。

HTTP擁有自己的使用者身份驗證機制,使用不同的身份驗證方案。

Basic 這是一種非常簡單的身份驗證機制。它在請求消息頭中随每條消息以Base64編碼字元申的形式發送使用者證書。

NTLM  WindowsNT挑戰/響應驗證機制,稱之為NTLM。現在已經有了更新的NTLMv2以及Kerberos驗證體系。NTLM是windows早期安全協定,因向後相容性而保留下來。

Digest 這是一種響應式機制,它随同使用者證書一起使用一個随機值MD5校驗和

雖然組織内部經常使用這些身份驗證協定通路内聯網服務,但網際網路上的Web應用程式基本很少使用它們。