1. 程式人生 > >web安全入門資料

web安全入門資料

第一章       Web安全的關鍵點

1.1:對於瀏覽器來說,我們開啟一個網站顯示在我們眼前的都是資料;    資料分類如下:

(1)伺服器端儲存的;(資料庫,記憶體,檔案系統;)

(2)客戶端儲存的;(本地cookiesFlash cookies;)

(3)傳輸中的(json資料,xml資料)

(4)文字資料(HTML,JavaScriptCSS

(5)多媒體資料(FlashMP3

(6)圖片資料;

1.2:瀏覽器的同源策略:

同源策略(Same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。可以說

Web是構建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現。所謂同源是指:域名,協議和埠相同;

同源策略規定:不同域的客戶端指令碼在沒有明確授權的情況下,不能讀寫對方的資源。

對於是否同域,詳見下表:(http://www.baidu.com為例)

       站點

 是否同域

        原因

https://www.baidu.com

協議不同(https    與    http  

http://abc.baidu.com

域名不同(abc子域與www子域不同)

http://baidu.com

域名不同(頂級域與www子域不是一個概念)

http://www.baidu.com:8080

埠號不同(web預設埠為80

http://www.baidu.con/a/

滿足同源策略;只是多了一個目錄而已

1.3WEB客戶端的資源包括:HTTP訊息頭,整個DOM樹,瀏覽器儲存(cookiesFlash cookieslocalstrage);

1.4:信任與信任關係:

瀏覽器的功能幾乎都是建立在信任關係上的,因為信任關係,才讓黑客有了可乘之機!同源策略也是信任的一種體現!

第二章 前端基礎

2.1W3C的世界法則:定義web世界的一些標準:HTML,XML,JavaScript,CSS等等;

2.2URL

統一資源定位符是對可以從網際網路上得到的資源的位置和訪問方法的一種簡潔的表示,是網際網路上標準資源的地址。網際網路上的每個檔案都有一個唯一的URL,它包含的資訊指出檔案的位置以及瀏覽器應該怎麼處理它。

以上是一個完整的URL,格式分兩部分:

第一部分:模式/協議(scheme):它告訴瀏覽器如何處理將要開啟的檔案。最常用的模式是超文字傳輸協議(Hypertext Transfer Protocol,縮寫為HTTP),這個協議可以用來訪問網路

第二部分:檔案所在的伺服器的名稱或IP地址,後面是到達這個檔案的路徑和檔案本身的名稱。伺服器的名稱或IP地址後面有時還跟一個冒號和一個埠號。它也可以包含接觸伺服器必須的使用者名稱稱和密碼。路徑部分包含等級結構的路徑定義,一般來說不同部分之間以斜線(/)分隔。詢問部分一般用來傳送對伺服器上的資料庫進行動態詢問時所需要的引數。

有時候,URL以斜槓“/”結尾,而沒有給出檔名,在這種情況下,URL引用路徑中最後一個目錄中的預設檔案(通常對應於主頁),這個檔案常常被稱為 index.html 或 default.htm

2.3HTTP協議

URL的請求協議幾乎都是http,它是一種無狀態的請求響應,即每次的請求響應之後,連線會立即斷開或延時斷開(保持一定的連線有效期),斷開後下一次請求再重新建立。

http的請求與響應都一般分為頭部與體部,它們之間用空行分隔;常見的請求方法有GETPOST;

請求頭的格式與響應頭的格式:

(1)請求頭的幾個關鍵點:

Host: www,baidu.com               這一行也必不可少,表明請求的主機是什麼

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0

   User-Agent表明身份,從這裡可以看出作業系統,瀏覽器,瀏覽器核心及對應版本號等資訊;

Cookie: BAIDUID=F80EC0020FDECAEF5040C0D8F69A8191:FG=1; BIDUPSID=F80EC0020FDECAEF5040C0D8F69A8191; cookies儲存使用者登入資訊;

(2)響應頭的幾個關鍵點:

  200  ok   這一行必須得有,200是狀態碼,ok是狀態描述;

    Server: bfe/1.0.8.5

上一句顯示了一些伺服器的資訊;

Content-Type: text/html;charset=utf-8

連線型別;

Expires: Tue, 21 Jul 2015 09:16:39 GMT

過期時間:

2.4HTML(超文字標記語言)

超文字標記語言的結構包括部分(Head)、和主體部分(Body),其中部提供關於網頁的資訊,主體部分提供網頁的具體內容。

HTML是由眾多的標籤組成的,標籤內還有對應的各種屬性。標籤可以不區分大小寫,有的可以不需要閉合。屬性的值可以用單引號,雙引號,反單引號包圍住,甚至不需要引號。對於的空格與tab毫不影響HTML的解析。HTML裡可以內嵌CSS,JavaScript等內容,而不強調分離。

網頁的本質就是超級文字標記語言,通過結合使用其他的Web技術(如:指令碼語言公共閘道器介面元件等),可以創造出功能強大的網頁。因而,超級文字標記語言是全球資訊網(Web)程式設計的基礎,也就是說全球資訊網是建立在超文字基礎之上的。

字符集:在網頁中除了可顯示常見的美國資訊交換標準程式碼(外語縮寫:ASCII)字元和漢字外,HTML還有許多特殊字元,它們一起構成了HTML字符集

一個網頁對應多個HTML檔案超文字標記語言檔案以.htm(磁碟作業系統DOS限制的外語縮寫)為副檔名.html(外語縮寫)為副檔名。可以使用任何能夠生成TXT型別原始檔的文字編輯器來產生超文字標記語言檔案,只用修改檔案字尾即可。

超文字標記語言

標準的超文字標記語言檔案都具有一個基本的整體結構,標記一般都是成對出現(部分標記除外例如:<br/>),即超文字標記語言檔案的開頭與結尾標誌和超文字標記語言的頭部與實體兩大部分。有三個雙標記符用於頁面整體結構的確認。

2.5dom

Dom樹在web中是用來儲存資料的,通過對dom樹的操作可以非常容易的獲取到我們的隱私資料,其實html文件就是一個dom樹。例如以下一部分:

對於這個樹來說:<html>是樹根,其他都是樹的每個節點。

2.6iframe內嵌出一個開放的世界<iframe></iframe>

Iframe標籤是html中一個非常重要的標籤,也是web安全中出境平率最高的標籤之一,很多網站都通過iframe嵌入第三方內容,比如嵌入廣告頁面等;

還有web/2.0中嵌入的許多第三方web遊戲與應用,都有使用到iframe

2.7:html內嵌指令碼執行

JavaScript指令碼除了出現在js格式檔案中,被嵌入而執行外,還可以出現在html中的<script></script>標籤內,html的標籤on事件中,以及一些標籤的hrefSrc等屬性的偽協議中。

2.8:跨站之魂----JavaScript

web前端安全中,JavaScript控制了整個前端的邏輯,通過JavaScript可以完成許多操作。JavaScript對於提交的內容可以完成編輯與刪除。因為碰到提交表單需要驗證碼的情況,JavaScript就不行了,對於跨站來說,大多數情況下,有了XSS漏洞,就意味著可以注入任意的JavaScript,有了JavaScript,就意味著被攻擊者的任何操作都可以模擬,任何隱私都可以獲取到。

參考文獻《Web前端黑客技術解密》鍾晨鳴,徐少培編著;電子工業出版社。

參考文獻《白帽子講Web安全》吳翰清著;電子工業出版社。