2011-07-21 26 views
1

好的,所以我正在開發一個已經開始更加混亂的web應用程序。然後我讀了一篇關於javascript hijacking的博客,我對它實際上是一個問題時有點困惑。我想澄清一下Javascript劫持,何時以及應該擔心多少?

問題1: 這是問題/漏洞嗎?

如果我的網站與遂將敏感 信息的信息可以進入錯誤手「GET」請求返回JSON數據。

我使用ASP.NET MVC和返回JSON的方法要求您明確允許json獲取請求。我猜測他們正在試圖挽救這個安全漏洞。

問題2: 劫持發生是通過嗅探/讀取響應,因爲它通過互聯網發送? SSL是否緩解了這種攻擊?

問題3: 這讓我自問這個問題。如果我在頁面的本地javascript對象中存儲頁面狀態,是否有人可以劫持該數據(除了登錄用戶)?

問題4: 我可以放心地減輕對漏洞只用「POST」請求後返回JSON?

+1

您需要搜索的術語是「跨站點腳本」(XSS)和「跨站點請求僞造」(CSRF)。這不是一個漏洞,它們是脆弱性的兩個單獨的**類。 – zzzzBov

+0

@zzzzBov特定的漏洞是濫用JS引擎,而不是XSS或CRSF – Raynos

回答

1

您鏈接的帖子在談論CSRF & XSS(見我對這個問題的評論),所以在這種情況下:

這是問題/ vulnerabiliy(「如果我的網站返回與JSON數據一個'GET'請求有敏感信息,那麼這些信息可能落入壞人之手。「)?

是否發生劫持通過嗅探/讀取響應,它正在通過互聯網發送的?

如果我存儲在頁面的本地JavaScript對象(或多個)頁面的狀態,能有人劫持的數據(而不是登錄的用戶除外)?

這取決於。這取決於您是否將數據存儲在Cookie中並且沒有設置正確的域或路徑。這取決於客戶端瀏覽器是否存在一個安全漏洞,允許腳本訪問通常受限制的數據。還有許多其他的攻擊媒介,並且一直在發現新的攻擊媒介。它的長和短是:不要相信帶有的任何機密或安全數據的瀏覽器。

我可以安全地減輕這個漏洞,只通過'POST'請求返回JSON嗎?

不(它不是一個單一的漏洞,它是一組漏洞)。

+0

這個鏈接正在討論['window.Array' hack](http://jeremiahgrossman.blogspot.com/2006/01/advanced-web-attack-techniques-using的.html)。 – Raynos

+1

@Raynos,你說的'window.Array'黑客是CSRF攻擊。這只是博客文章中鏈接的各種文章中的一篇。 – zzzzBov

0

那麼你可以檢查是否有一個得到,如果得到是從正確 referrer。

從一個POST中獲取它並不安全,因爲這很容易模擬。

一般來說,有很多事情可以做,以防止跨站點僞造和操縱。

+0

如何驗證「正確」引用?不會限制從用戶轉到從該網站獲取數據的惡意網站保存的「發佈」內容嗎?我知道一個人可以發佈帖子,但是用戶可以在沒有用戶知道的情況下發布帖子嗎? – Jose

0

實際上的漏洞可以覆蓋Array

如果覆蓋原生數組,那麼一個可以訪問構建爲數組的JSON數據。

此漏洞已被所有主流瀏覽器修補。

如果您的客戶端正在使用不安全的瀏覽器,那麼您只應該擔心這一點。

實施例:

window.Array = function() { 
    console.log(arguments); 
    // send to secret server 
} 

... 

$.get(url, function(data) { ... }); 

當如果在返回的JSON任何陣列data的構造與瀏覽器將調用window.Array,然後該數組中的數據得到發送給密鑰服務器。

+0

如何覆蓋Array做到這一點? – Jose

+0

@Jose希望澄清。 – Raynos

+0

答案有什麼問題? – Raynos

相關問題