被動攻擊與同源策略

1.主動攻擊與被動攻擊跨域

主動攻擊:攻擊者直接攻擊Web服務器,SQL注入攻擊。瀏覽器

被動攻擊:攻擊者並不直接攻擊服務器,而是針對網站的用戶設下陷阱,利用掉入陷阱的用戶來攻擊應用程序。安全

單純的被動攻擊——將用戶誘導至設有圈套的網站,利用瀏覽器、Adobe Reader、Adobe Flash Player、JRE等插件的漏洞。服務器

惡意利用正規網站進行的被動攻擊——經過在正規網站設置陷阱來實施攻擊。cookie

在正規網站中設置陷阱的方式:網絡

非法獲取FTP等服務器的密碼後篡改網站內容;性能

攻擊WEB服務器的安全隱患來篡改網站內容;網站

經過SQL注入攻擊篡改網站內容;插件

在用戶可以本身發佈內容的網站上,利用跨站腳本實施攻擊。orm

跨站被動攻擊——同時使用惡意網站和正規網站的被動攻擊模式。

  • 用戶瀏覽惡意網站
  • 從惡意網站下載含有惡意代碼的HTML
  • HTML中的惡意代碼被觸發,從而向正規網站發送攻擊請求
  • 正規網站返回含有JavaScript等的響應內容

2.瀏覽器的安全功能

沙盒,JavaScript、Java Applet、Adobe Flash Player使用的一種策略。

  • 禁止訪問本地文件
  • 禁止使用打印機等資源(能夠顯示頁面)
  • 限制網絡訪問(同源策略)

同源策略,禁止JavaScript進行跨站訪問的安全策略,瀏覽器的沙盒環境所提供的一項制約。

注意:若是主機相同,在iframe的外部就可以經過JavaScript取得iframe內部的HTML內容。若是惡意網站能用JavaScript訪問iframe內部信息,那麼我的信息會被惡意網站上的腳本發送給他的服務器。

同源的條件:

URL的主機(全稱域名)一致;

Scheme(協議)一致;

端口號一致。

注意:發送cookie時的條件與協議或端口號無關,針對JavaScript的限制比較嚴格,JavaScript沒有訪問目錄的權限。

3.應用程序安全隱患與被動攻擊

使用iframe外層的JavaScript訪問內層(其餘主機)數據時因爲違反同源策略,訪問會被拒絕。

可是,可使用XSS等手段將JavaScript放到iframe的內層去執行。因爲在iframe內層不會受到同源策略的限制,所以可以成功訪問文檔信息。

第三方JavaScript:

網站運營者執行所信任的第三方JavaScript;

網頁瀏覽者信任第三方而向網頁中嵌入JavaScript。(火狐的插件Greasemonkey)

4.JavaScript之外的跨域訪問

可以進行跨域訪問的其餘瀏覽器功能:

frame元素和iframe元素——iframe元素和frame元素可以進行跨域訪問,但經過JavaScript卻不能跨域訪問iframe中的文檔內容。

X-FRAME-OPTIONS:制定了DENY的響應將不能顯示在frame等的內層中,而SAMEORIGIN的狀況下則僅當與地址欄上顯示的域名爲同源時纔可以被顯示。

將不使用iframe或framed額網站指定爲DENY,使用frame而且使用單一主機的網站指定爲SAMEORIGIN,能夠更好地防護利用frame執行的各類攻擊。

 

img元素——src屬性可以制定其餘域名,請求圖像時會附帶圖像所在主機的cookie,可以讓惡意網站上的圖像顯示爲「此圖像須要認證」。

若是不想讓本身的圖像被貼到某些特定網站,則能夠針對圖像j檢驗Referer消息頭。這樣會使關閉了Referer的用戶沒法看到圖像。

 

script元素——指定src屬性可以從其餘網站來讀取JavaScript。

假設A網站讀取B網站的JavaScript:

JavaScrip的源代碼位於B網站的服務器中,可是被讀取後,做用範圍就變成了讀取它的HTML所在的A網站。因此JavaScript執行document.cookie後獲得的即是A網站上的cookie信息。

A網站向B網站發送取得JavaScript的請求時,也會同時向B網站發送cookie。根據用戶在B網站的登陸狀態,B網站的JavaScript代碼有可能會發生變化,從而影響A網站中的內容。

JSONP是從Ajax應用來訪問不一樣來源的服務器中的數據時所採起的一種方式,根據認證狀態的不一樣,JavaScript代碼(JSONP中的數據)會發生變化,可能會致使信息泄露事故,因此JSONP不能用於傳送隱私信息。

 

CSS——可以被跨域讀取,除了HTML的link元素以外,也能在CSS中使用@import,使用JavaScriptd額addImport方法。

在老版本的IE中,存在CSSXSS安全隱患,使HTML或JS被當作CSS讀取。

 

form元素的action屬性——action屬性也可以跨域指定,不管action的目標是否跨域,form的提交都能經過JavaScript來操做。

惡意利用form元素的特性來實施攻擊的方式稱爲跨站請求僞造(CSRF),讓用戶在不知情的狀況下提交form,從而肆意使用應用中的功能。

 

總結:JavaScript的同源策略是瀏覽器防護被動攻擊的表明性對策。若瀏覽器或Web應用中存在安全隱患,攻擊者可繞過同源策略而執行攻擊。

相關文章
相關標籤/搜索