在 Web 2.0 時代必須重視 JavaScript/JSON Hijacking 攻擊

分享到噗浪!

ASP.NET MVC 2.0 Preview 2 開始 JsonResult 已經被修改成只能在 HTTP POST 的時候回應,像我們經常使用 jQuery$.getJSON 就不能再用了,我從 ASP.NET MVC 2.0 Preview 2 Release Note 得知 JSON Hijacking 之後就持續追蹤下去,覺得這是個非常值得注意的安全問題。

前陣子 Twitter 就被發現了一個 JSON Hijacking 漏洞,可以讓使用者在進入惡意網站後被取得你所有在 Twitter 的好友清單。建議有在使用 JSON 或動態下載 JavaScript 的網站都應該特別注意!

我看了好幾篇文章,不過都是英文的,解釋的非常清楚,相關資訊請參考「相關連結」。以下我列出幾個中文的文章供各位參考:

要避免這個問題,最簡單的作法就是『不要透過 HTTP GET 送出 JSON 資料』,雖然 jQuery 沒有內建 $.postJSON 方法,但卻非常容易實做,且在官網的 jQuery.post 文件有提供一個簡單的範例如下:

$.postJSON = function(url, data, callback) {
$.post(url, data, callback, "json");
};

相關連結

  

此文章由 will 發表於 2009/11/13 下午 11:55:00

永久連結 | 評論 (3) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET MVC | JavaScript | Security | Web

標籤: , , , , ,

評論

十一月 14. 2009 00:22

Dino

其實光是限制只能以HTTP POST取得JSON也不見得就有多安全, 某些機構網站就是如此. 而且如果發現了某個閘道可以提供查詢並返回JSON資料, 連HTML Parser也不必了, 當場就成了資料庫來源!

Dino 台灣

十一月 14. 2009 12:59

Will 保哥

若出現「閘道」的漏洞那可做的事就多了,加上 HTTP POST 限制至少可以阻擋大部分 CSRF ( en.wikipedia.org/wiki/Cross-site_request_forgery ) 攻擊。

Will 保哥 台灣

十二月 4. 2009 10:05

Sinina

通过JSON等直接攻击,现在确实有发展的趋势。其实最好还是所有的内容都已POST形式传递,这样会安全很多。。。如果在用一些HTTPS,那就更加OK了。

Sinina 中華人民共和國

新增評論


( 您輸入的Email不會顯示於網站上 )

  Country flag

biuquote
  • 評論
  • 線上預覽
Loading