WebGoat之HTTP BASICS(客戶端與服務器端的交互方式)-2016.01.02

HTTP BASICS

B/S(瀏覽器和服務器模式的簡單介紹)

B/S模式,簡答的說包括客戶端請求和服務器端響應;客戶端以一定格式向服務器端請求所需數據,服務器端同樣以一種規定的格式返回給客戶端所需數據。接下來我們可以分析一下客戶端請求。在WebGoat的HtppBasics裏面,我們在搜索輸入框中輸入“hahaha”,然後點擊提交,在Webscarab中我們會捕獲如下內容,這就是我們客戶端發給服務器端的數據請求,包括:請求、報頭和實體三個部分。


文件請求:即第一行數據,指出了採用HTTP 協議的1.1版本,以POST的方式,向http://localhost:80/WebGoat/attack這個地址發送請求,其中自帶的參數爲Screen=16,menu=100;

       報頭部分:這一部分對客戶端請求數據的類型、客戶端和數據段通信的方式、編碼、語言等基本內容作出了規定,另外還提供了相關的URL和瀏覽器自動加載併發送的Cookie值等內容。其中:

Host指出了客戶端主機名稱;

User-Agent指出了客戶端應用軟件的配置信息;

Accept:指出了客戶端接受文件的類型;

Accept-Language:指出了文件的編碼方式;Accept-Encoding:指出了客戶端和服務器端數據壓縮方式,其中gzip是採用zlib庫對deflate進行改造的壓縮方式,支持任何的瀏覽器,但是速度較低,而deflate,對瀏覽器的支持不是那麼好,但是由於它是最底層的,速度較快,那麼實際上在HTTP/1.1中會對我們指定的兩種壓縮方式分別進行檢驗,而最終的壓縮方式都可以歸結爲GZIP,這顯得有點繁瑣,我們可以通過指定Accept-Encoding對我們使用的壓縮方式進行聲明。Content-Type:指出了所使用的文件擴展名。然後我們通過Webscarab將截斷的請求發送出去,同時我們會截獲服務器返回給客戶端的響應,如下所示

 

其中第一行數據指出了採用的傳輸協議的版本,以及服務器端對客戶端請求數據處理結果的編號200意味着OK,即客戶端和服務器端連接正常;然後Server指出了服務器版本信息;另外還會指出所返回數據的類型,例如是html還是css等,最後在實體部分會以響應的格式返回給客戶端所需的數據。

到這裏爲止,我們對客戶端和服務器端的交互大致已經有了一個較爲宏觀的印象,即,客戶端發送指定格式的請求給服務器端,服務器端呢再以一定格式返回給客戶端相應的數據。那麼,我們不禁會有疑問,如果服務器端對我們提交的數據沒有做好相應的防護處理工作,那麼對於服務器來說豈不是很危險;另外,由於我們提交的數據由我們決定的,那麼我們豈不是可以任意修改我們提交的東西,以欺騙服務器;不錯,接下來的實驗就是基於服務器對數據處理失誤或者對訪問控制等限制出錯等一些列不規範的措施引發分Web漏洞,讓我們一起開啓WebGoat學習之程吧!

 

 

 

 

 

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