WEB安全滲透測試基礎知識(一)

1.1. Web技術演化

1.1.1. 靜態頁面

在互聯網最初開始的時候,Web網站的主要內容是靜態的,由文字和圖片組成,製作和表現形式也是以表格為主。當時的用戶行為也非常簡單,僅僅是瀏覽網頁。

WEB安全滲透測試基礎知識(一)

1.1.2. 多媒體階段

隨著技術的不斷髮展,音頻、視頻、Flash等多媒體技術誕生了。多媒體的加入使得網頁變得更加生動形象,網頁上的交互也給用戶帶來了更好的體驗。

1.1.3. CGI階段

漸漸的,多媒體已經不能滿足人們的請求,於是CGI(Common Gateway Interface)應運而生。CGI定義了Web服務器與外部應用程序之間的通信接口標準,因此Web服務器可以通過CGI執行外部程序,讓外部程序根據Web請求內容生成動態的內容。

在這個時候,各種編程語言如PHP/ASP/JSP也逐漸加入市場,基於這些語言可以實現更加模塊化的、功能更強大的應用程序。

1.1.4. Ajax

在開始的時候,用戶提交整個表單後才能獲取結果,用戶體驗極差。於是Ajax(Asynchronous Javascript And XML)技術逐漸流行起來,它使得應用在不更新整個頁面的前提下也可以獲得或更新數據。這使得Web應用程序更為迅捷地回應用戶動作,並避免了在網絡上發送那些沒有改變的信息。

1.1.5. MVC

隨著Web應用開發越來越標準化,出現了MVC等思想。MVC是Model/View/Control的縮寫,Model用於封裝數據和數據處理方法,視圖View是數據的HTML展現,控制器Controller負責響應請求,協調Model和View。

Model,View和Controller的分開,是一種典型的關注點分離的思想,使得代碼複用性和組織性更好,Web應用的配置性和靈活性也越來越好。而數據訪問也逐漸通過面向對象的方式來替代直接的SQL訪問,出現了ORM(Object Relation Mapping)的概念。

除了MVC,類似的設計思想還有MVP,MVVM等。

1.1.6. RESTful

在CGI時期,前後端通常是沒有做嚴格區分的,隨著解耦和的需求不斷增加,前後端的概念開始變得清晰。前端主要指網站前臺部分,運行在PC端、移動端等瀏覽器上展現給用戶瀏覽的網頁,由HTML5、CSS3、JavaScript組成。後端主要指網站的邏輯部分,涉及數據的增刪改查等。

此時,REST(Representation State Transformation)逐漸成為一種流行的Web架構風格。

REST鼓勵基於URL來組織系統功能,充分利用HTTP本身的語義,而不是僅僅將HTTP作為一種遠程數據傳輸協議。一般RESTful有以下的特徵:

  • 域名和主域名分開api.example.comexample.com/api/
  • 帶有版本控制api.example.com/v1api.example.com/v2
  • 使用URL定位資源GET /users 獲取所有用戶GET /team/:team/users獲取某團隊所有用戶POST /users 創建用戶PATCH/PUT /users 修改某個用戶數據DELETE /users 刪除某個用戶數據
  • 用 HTTP 動詞描述操作GET 獲取資源,單個或多個POST 創建資源PUT/PATCH 更新資源,客戶端提供完整的資源數據 是 DELETE 刪除資源正確使用狀態碼使用狀態碼提高返回數據的可讀性
  • 默認使用 JSON 作為數據響應格式
  • 有清晰的文檔

1.1.7. 雲服務

隨著時間的發展,Web的架構越發複雜,負載均衡、數據庫分表、異地容災、緩存、CDN、消息隊列等技術開始應用,增加了Web開發和運維的複雜度。同時雲服務開始逐漸發展,部署環境容器化,各個功能拆成微服務或是Serverless的架構。

1.2. 計算機網絡

1.2.1. 計算機通信網的組成

計算機網絡由通信子網和資源子網組成。

其中通信子網負責數據的無差錯和有序傳遞,其處理功能包括差錯控制、流量控制、路由選擇、網絡互連等。

其中資源子網:是計算機通信的本地系統環境,包括主機、終端和應用程序等, 資源子網的主要功能是用戶資源配置、數據的處理和管理、軟件和硬件共享以及負載 均衡等。

計算機通信網就是一個由通信子網承載的、傳輸和共享資源子網的各類信息的系統。

1.2.2. 通信協議

為了完成計算機之間有序的信息交換,提出了通信協議的概念,其定義是相互通信的雙方(或多方)對如何進行信息交換所必須遵守的一整套規則。

協議涉及到三個要素,分別為:

  • 語法:語法是用戶數據與控制信息的結構與格式,以及數據出現順序的意義
  • 語義:用於解釋比特流的每一部分的意義
  • 時序:事件實現順序的詳細說明

1.2.3. OSI七層模型

1.2.3.1. 簡介

OSI(Open System Interconnection)共分為物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層七層,其具體的功能如下。

1.2.3.2. 物理層

  • 提供建立、維護和釋放物理鏈路所需的機械、電氣功能和規程等特性
  • 通過傳輸介質進行數據流(比特流)的物理傳輸、故障監測和物理層管理
  • 從數據鏈路層接收幀,將比特流轉換成底層物理介質上的信號

1.2.3.3. 數據鏈路層

  • 在物理鏈路的兩端之間傳輸數據
  • 在網絡層實體間提供數據傳輸功能和控制
  • 提供數據的流量控制
  • 檢測和糾正物理鏈路產生的差錯
  • 格式化的消息稱為幀

1.2.3.4. 網絡層

  • 負責端到端的數據的路由或交換,為透明地傳輸數據建立連接
  • 尋址並解決與數據在異構網絡間傳輸相關的所有問題
  • 使用上面的傳輸層和下面的數據鏈路層的功能
  • 格式化的消息稱為分組

1.2.3.5. 傳輸層

  • 提供無差錯的數據傳輸
  • 接收來自會話層的數據,如果需要,將數據分割成更小的分組,向網絡層傳送分組並確保分組完整和正確到達它們的目的地
  • 在系統之間提供可靠的透明的數據傳輸,提供端到端的錯誤恢復和流量控制

1.2.3.6. 會話層

  • 提供節點之間通信過程的協調
  • 負責執行會話規則(如:連接是否允許半雙工或全雙工通信)、同步數據流以及當故障發生時重新建立連接
  • 使用上面的表示層和下面的傳輸層的功能

1.2.3.7. 表示層

  • 提供數據格式、變換和編碼轉換
  • 涉及正在傳輸數據的語法和語義
  • 將消息以合適電子傳輸的格式編碼
  • 執行該層的數據壓縮和加密
  • 從應用層接收消息,轉換格式,並傳送到會話層,該層常合併在應用層中

1.2.3.8. 應用層

  • 包括各種協議,它們定義了具體的面向擁護的應用:如電子郵件、文件傳輸等

1.2.3.9. 總結

低三層模型屬於通信子網,涉及為用戶間提供透明連接,操作主要以每條鏈路( hop-by-hop)為基礎,在節點間的各條數據鏈路上進行通信。由網絡層來控制各條鏈路上的通信,但要依賴於其他節點的協調操作。

高三層屬於資源子網,主要涉及保證信息以正確可理解形式傳送。

傳輸層是高三層和低三層之間的接口,它是第一個端到端的層次,保證透明的端到端連接,滿足用戶的服務質量( QoS)要求,並向高三層提供合適的信息形式。

本文轉載自 安全時代

WEB安全滲透測試基礎知識(一)


分享到:


相關文章: