2011-12-21 10 views
11

最近、「JSONハイジャック」に関する記事を読んで、そのうちのいくつかはhereです。最新のブラウザで「JSONハイジャック」を行うことはできますか?

私は、ブラウザ(Chrome 17(dev)、Firefox 8、IE8)で以下を実行しようとしました。

  • オーバーライドオブジェクトまたはArrayコンストラクタ
  • __defineSetter__方法
  • を変更するのDefineProperty方法に

を変更しかし、私は(文字通り)JSONデータで何もできませんでした。

最新のブラウザで「JSONハイジャック」の問題がすべて解決されましたか? またはそれをどのように再現できますか?

+0

+1大きな質問です。 FWIW、私は 'Object.defineProperty()'または 'Array'のオーバーライドをChrome 16で動作させることができませんでした。 – Matt

+0

これを読んでくださいhttp://stackoverflow.com/questions/2669690/why-does-google-prepend- while-to-their-json-responses – techouse

答えて

1

jsonを解析する正当なアプリケーションではありません - jsonハイジャックは、ユーザーが通常apiを使用するアプリケーションにログインしている間に、実際のアプリケーションの代わりにjsonデータを要求している悪意のある人に関する情報開示の問題です。ブラウザが認証情報を送信するなど、簡単な認証は役に立ちません。 auth-cookieを無料で利用できます: -/

しかし、現在のブラウザでは、この問題で直接影響を受けることはありません。それにもかかわらず、深い防衛のルールで!そして、私は将来の問題や回帰などに対しても守ります。

0

evalを使用してJSONをデコードすると、理論的に乱用される可能性があります。

JSONのデコード機能を提供する人気のJSライブラリは、ブラウザにJSONサポートが組み込まれている場合、デフォルトでJSON.parseになります。したがって、コードが正しく記述されていない限り、最近のブラウザは脆弱ではありません。

+0

リモートドメインが[同じ発信元ポリシー](http://en.wikipedia.org/wiki/Same-origin_policy)のために応答を読み取れなかったため、 。 – SilverlightFox

+1

同じ原点ポリシーはスクリプトタグには適用されません。 –

関連する問題