読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

JSONの解析はwindow.eval()なのか

JavaScript JQuery

jQueryでgetJSON()とかするとレスポンスをJSON形式で返してくれますが、このときに使用されるJSON解析ロジックは「window.eval()」だったりします。(jQuery1.3.2で確認)
たとえば、以下のようなjsonデータをgetJSON()すると、JavaScriptとして実行されてしまいます。

[alert( "!!" )]

getJSONするコード。

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <script type="text/javascript" src="./jquery-1.3.2.js"></script>
  <script type="text/javascript">
    $(function(){
      $.getJSON( "./test.json", "", function(result){
        $("#stdout").append( "completed.<br/>" );
      });
    });
  </script>
</head>
<body>
  <div id="stdout" ><div>
</body>
</html>

実行結果はこちら
んー、これはちと怖いな。安全でない可能性があるデータを解析する場合は注意が必要ですね。