教材內容總結及擴展php
Web體系結構前端
Web體系結構,是相對於網站靜態內容而言,是指以c/c++、php、Java、perl、.net等服務器端語言開發的網絡應用軟件,好比論壇、網絡相冊、交友、BLOG等常見應用。動態應用系統一般與數據庫系統、緩存系統、分佈式存儲系統等密不可分。nginx
大型動態應用系統平臺主要是針對於大流量、高併發網站創建的底層系統架構。大型網站的運行須要一個可靠、安全、可擴展、易維護的應用系統平臺作爲支撐,以保證網站應用的平穩運行。c++
大型動態應用系統又可分爲幾個子系統:web
1)Web前端系統sql
2)負載均衡系統數據庫
3)數據庫集羣系統瀏覽器
4)緩存系統緩存
5)分佈式存儲系統安全
6)分佈式服務器管理系統
7)代碼分發系統 Web前端系統
負載均衡系統:
爲了達到不一樣應用的服務器共享、避免單點故障、集中管理、統一配置等目的,不以應用劃分服務器,而是將全部服務器作統一使用,每臺服務器均可以對多個應用提供服務,當某些應用訪問量升高時,經過增長服務器節點達到整個服務器集羣的性能提升,同時使他應用也會受益。該Web前端系統基於Apache/Lighttpd/Eginx等的虛擬主機平臺,提供PHP程序運行環境。服務器對開發人員是透明的,不須要開發人員介入服務器管理
負載均衡系統分爲硬件和軟件兩種。硬件負載均衡效率高,可是價格貴,好比F5等。軟件負載均衡系統價格較低或者免費,效率較硬件負載均衡系統低,不過對於流量通常或稍大些網站來說也足夠使用,好比lvs, nginx。大多數網站都是硬件、軟件負載均衡系統並用。
數據庫集羣系統:
因爲Web前端採用了負載均衡集羣結構提升了服務的有效性和擴展性,所以數據庫必須也是高可靠的,才能保證整個服務體系的高可靠性,如何構建一個高可靠的、能夠提供大規模併發處理的數據庫體系?
咱們能夠採用以下方案:
1) 使用 MySQL 數據庫,考慮到Web應用的數據庫讀多寫少的特色,咱們主要對讀數據庫作了優化
,提供專用的讀數據庫和寫數據庫,在應用程序中實現讀操做和寫操做分別訪問不一樣的數據庫。
2) 使用 MySQL Replication 機制實現快速將主庫(寫庫)的數據庫複製到從庫(讀庫)。一個
主庫對應多個從庫,主庫數據實時同步到從庫。
3) 寫數據庫有多臺,每臺均可以提供多個應用共同使用,這樣能夠解決寫庫的性能瓶頸問題和單
點故障問題。
4) 讀數據庫有多臺,經過負載均衡設備實現負載均衡,從而達到讀數據庫的高性能、高可靠和高
可擴展性。
5) 數據庫服務器和應用服務器分離。
6) 從數據庫使用BigIP作負載均衡。
緩存系統:
緩存分爲文件緩存、內存緩存、數據庫緩存。在大型Web應用中使用最多且效率最高的是內存緩存。最經常使用的內存緩存工具是Memcached。使用正確的緩存系統能夠達到實現如下目標:
一、使用緩存系統能夠提升訪問效率,提升服務器吞吐能力,改善用戶體驗。
二、減輕對數據庫及存儲集服務器的訪問壓力。
三、Memcached服務器有多臺,避免單點故障,提供高可靠性和可擴展性,提升性能。
分佈式存儲系統
Web系統平臺中的存儲需求有下面兩個特色:
1) 存儲量很大,常常會達到單臺服務器沒法提供的規模,好比相冊、視頻等應用。所以須要專業的大規模存儲系統。
2) 負載均衡cluster中的每一個節點都有可能訪問任何一個數據對象,每一個節點對數據的處理也能被其餘節點共享,所以這些節點要操做的數據從邏輯上看只能是一個總體,不是各自獨立的數據資源。
所以高性能的分佈式存儲系統對於大型網站應用來講是很是重要的一環。
分佈式服務器管理系統
隨着網站訪問流量的不斷增長,大多的網絡服務都是以負載均衡集羣的方式對外提供服務,隨之集羣規模的擴大,原來基於單機的服務器管理模式已經不可以知足咱們的需求,新的需求必須可以集中式的、分組的、批量的、自動化的對服務器進行管理,可以批量化的執行計劃任務。
在分佈式服務器管理系統軟件中有一些比較優秀的軟件,其中比較理想的一個是Cfengine。它能夠對服務器進行分組,不一樣的分組能夠分別定製系統配置文件、計劃任務等配置。它是基於C/S 結構的,全部的服務器配置和管理腳本程序都保存在Cfengine Server上,而被管理的服務器運行着 Cfengine Client 程序,Cfengine Client經過SSL加密的鏈接按期的向服務器端發送請求以獲取最新的配置文件和管理命令、腳本程序、補丁安裝等任務。
有了Cfengine這種集中式的服務器管理工具,咱們就能夠高效的實現大規模的服務器集羣管理,被管理服務器和 Cfengine Server 能夠分佈在任何位置,只要網絡能夠連通就能實現快速自動化的管理。
代碼發佈系統
隨着網站訪問流量的不斷增長,大多的網絡服務都是以負載均衡集羣的方式對外提供服務,隨之集羣規模的擴大,爲了知足集羣環境下程序代碼的批量分發和更新,咱們還須要一個程序代碼發佈系統。
這個發佈系統能夠幫咱們實現下面的目標:
1) 生產環境的服務器以虛擬主機方式提供服務,不須要開發人員介入維護和直接操做,提供發佈系統能夠實現不須要登錄服務器就能把程序分發到目標服務器。
2) 咱們要實現內部開發、內部測試、生產環境測試、生產環境發佈的4個開發階段的管理,發佈系統能夠介入各個階段的代碼發佈。
3) 咱們須要實現源代碼管理和版本控制,SVN能夠實現該需求。
這裏面可使用經常使用的工具Rsync,經過開發相應的腳本工具實現服務器集羣間代碼同步分發。
HTTP協議
HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。
HTTP是一個基於TCP/IP通訊協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。
HTTP是一個屬於應用層的面向對象的協議,因爲其簡捷、快速的方式,適用於分佈式超媒體信息系統。它於1990年提出,通過幾年的使用與發展,獲得不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規範化工做正在進行之中,並且HTTP-NG(Next Generation of HTTP)的建議已經提出。
HTTP協議工做於客戶端-服務端架構爲上。瀏覽器做爲HTTP客戶端經過URL向HTTP服務端即WEB服務器發送全部請求。Web服務器根據接收到的請求後,向客戶端發送響應信息。
結構圖:
主要特色
一、簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法經常使用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯繫的類型不一樣。因爲HTTP協議簡單,使得HTTP服務器的程序規模小,於是通訊速度很快。
二、靈活:HTTP容許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
3.無鏈接:無鏈接的含義是限制每次鏈接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開鏈接。採用這種方式能夠節省傳輸時間。
4.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺乏狀態意味着若是後續處理須要前面的信息,則它必須重傳,這樣可能致使每次鏈接傳送的數據量增大。另外一方面,在服務器不須要先前信息時它的應答就較快。
5.支持B/S及C/S模式。
Web應用安全:
OWASP總結了現有Web應用程序在安全方面常見的十大漏洞分別是:
非法輸入
失效的訪問控制
失效的帳戶和線程管理
跨站腳本攻擊
緩存溢出問題
注入式攻擊
異常錯誤處理
不安全的存儲
程序拒絕服務攻擊
不安全的配置管理等。
kali視頻學習實踐
Fuzz模糊測試工具集
1.Bed.pl
Bed是一個純文本協議的Fuzz工具,可以檢查常見的漏洞,如緩衝區溢出,格式串漏洞,整數溢出等。
2.Fuzz_ipv6
也是針對IPV6協議的模糊測試工具
3.Wfuzz
針對WEB應用的模糊測試工具,能夠進行web應用暴力猜解,也支持對網站目錄,登陸信息,應用資源文件等的暴力猜解,還能夠進行get及post參數的猜解,sql注入,xss漏洞的測試等。該工具全部功能都依賴於字典。
參數中FUZZ至關於一個變量,用字典中的字段來替換它來完成猜解。
4.Xsser
主要是針對一個點或是一個頁面檢查是否是有Xsser漏洞。
Xsser的參數介紹以下:
xsser [OPTIONS][-u|-i|-d]
指定待檢測目標,至少要指定一下選項的其中一項,以設置待檢測目標URL。
-u URL 待檢測的目標URL
1 -i READFILE 從文件讀取目標URL
-d DORK 將搜索引擎返回的搜索結果做爲目標URL
學習進度條
40%
學習目標
基本理解Kali的用法,掌握網絡攻防基本技巧。黑客入門。
第四周進度 上週目標完成狀況 良好 本週學習計劃 教材第四章的學習 完成p115的實踐練習 5個Kali視頻學習(11-15)
第五週進度 教材第11、十二章的學習 完成p457,P507的實踐練習 5個Kali視頻學習(16-20)
學習遇到的問題
在運行虛擬機的過程當中常常會碰見卡頓或者死機的狀況,也知道是電腦配置問題,是否是有一些方法能夠經過設置提升虛擬機的速度。