2011-12-21 42 views
11

最近我看了一些關於'JSON劫持'的文章,其中一些是here是否有可能在現代瀏覽器上執行「JSON劫持」?

所以,我試着在我的瀏覽器,Chrome 17(dev),Firefox 8和IE8上做下面的事情。

  • 覆蓋對象或數組構造
  • 修改__defineSetter__方法
  • 修改defineProperty方法

但我不能做(字面)JSON數據什麼。

'JSON劫持'問題在現代瀏覽器上都解決了嗎? 或者我該如何重現它?

+0

+1偉大的問題。 FWIW,我無法獲得'Object.defineProperty()'或重寫'Array'在Chrome 16中工作。 – Matt 2011-12-21 09:44:53

+0

閱讀本文http://stackoverflow.com/questions/2669690/why-does-google-prepend- while 1-to-json-responses – techouse 2014-08-29 12:13:08

回答

1

這不是關於解析json的合法應用程序 - json劫持是一個信息泄露問題,有關某些惡意方請求您的json數據而不是真正的應用程序,而用戶通常會登錄到使用api的應用程序。簡單身份驗證無助於 - 因爲瀏覽器發送身份驗證信息,例如auth-cookie免費: - /。

但是對於ES5,大多數當前的瀏覽器不會再受此問題直接影響。儘管如此,深入的防守規則!而我對未來問題的保護或迴歸等。

0

如果您使用eval來解碼JSON,那麼理論上可能會有這樣的東西被濫用。

當瀏覽器內置JSON支持時,提供JSON解碼功能的流行JS庫默認爲JSON.parse,因此,除非您的代碼寫入不正確,否則任何最近的瀏覽器都不應受到攻擊。

+0

由於[同源策略](http://en.wikipedia.org/wiki/Same-origin_policy)的原因,解碼並不真正相關,因爲遠程域無法讀取響應。 。 – SilverlightFox 2014-01-08 09:46:47

+1

整個觀點是,同源策略不適用於腳本標記。 – 2014-08-29 12:34:03

相關問題