You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
This project is now archived. As of 2024, no code changes have been made in 5 years, and I (Jim) have not had the time to port it to new technology, or maintain it in a way that it deserves. For existing projects using this code, it should continue to work, but I would recommend looking for other solutions. I (Jim) still think there is a clear gap in the market for a streaming-first JSON parser th
はせがわようすけ氏のブログエントリ「機密情報を含むJSONには X-Content-Type-Options: nosniff をつけるべき」にて、巧妙な罠を仕掛けることにより、別ドメインのJSONデータをvbscriptとして読み込み、エラーハンドラ経由で機密情報を盗み出すという手法が紹介されました。これは、IEの脆弱性CVE-2013-1297を悪用したもので、MS13-037にて解消されていますが、MS13-037はIE6~IE8が対象であり、IE9以降では解消されていません。 また、MS13-037を適用いていないIE6~IE8の利用者もしばらく残ると考えられることから、この問題を詳しく説明致します。サイト側の対策の参考にして下さい。 問題の概要 JSON形式のデータは、通常はXMLHttpRequestオブジェクトにより読み出しますが、攻撃者が罠サイトを作成して、vbscript
WebアプリケーションにおいてJSONを用いてブラウザ - サーバ間でデータのやり取りを行うことはもはや普通のことですが、このときJSON内に第三者に漏れては困る機密情報が含まれる場合は、必ず X-Content-Type-Options: nosniff レスポンスヘッダをつけるようにしましょう(むしろ機密情報かどうかに関わらず、全てのコンテンツにつけるほうがよい。関連:X-Content-Type-Options: nosniff つかわないやつは死ねばいいのに! - 葉っぱ日記)。 例えば、機密情報を含む以下のようなJSON配列を返すリソース(http://example.jp/target.json)があったとします。 [ "secret", "data", "is", "here" ] 攻撃者は罠ページを作成し、以下のようにJSON配列をvbscriptとして読み込みます。もちろ
GWが始まりましたが、鎌倉のGWは観光客多すぎて逆に住民はげんなりして外に出なくなる感じです。とはいえ路地まで観光客が攻め込んでくることは少ないので、路地を散歩する分には天気がよくていい感じですね。ちなみに人力車のおにーさんはそういう味のある路地を知り尽くしているので人力車で移動するのはそこそこオススメです(ぼくは乗ったことないけど「こんなところも通るんだ!」ってところで見かけたりします)。 さて、jqというコマンドをご存じでしょうか。 jq jq is a lightweight and flexible command-line JSON processor. と書いてあるとおり、コマンドラインでJSONを扱うことができるコマンドです。で、今まさに仕事で巨大JSONと戦うことが多く、このコマンドが大活躍です。 とはいえ、ぼくの使い方としては「巨大JSONをキレイに整形して表示する」とい
JSON (JavaScript Object Notation)は、軽量のデータ交換フォーマットです。人間にとって読み書きが容易で、マシンにとっても簡単にパースや生成を行なえる形式です。 JavaScriptプログラミング言語 (ECMA-262標準第3版 1999年12月)の一部をベースに作られています。 JSONは完全に言語から独立したテキスト形式ですが、C、C++、C#、Java、JavaScript、Perl、Python、その他多くのCファミリーの言語を使用するプログラマにとっては、馴染み深い規約が使われています。これらの性質が、 JSONを理想的なデータ交換言語にしています。 JSONは2つの構造を基にしています。 名前/値のペアの集まり。様々な言語で、これはオブジェクト、レコード、構造体、ディクショナリ、ハッシュテーブル、キーのあるリスト、連想配列として実現されています。
こんにちは、「検索と発見のためのデザイン」(オライリー・ジャパン)を買いました。同じ著者の「アンビエント・ファインダビリティ」は発見可能性の広い枠組みを考える読み物でしたが、こちらは実際に検索システムをデザインするときの枠組みを提供してくれる本って感じです。 さて、今日はそんなユーザー寄りのデザインの話ではなくjQueryの実装の話です。 最近のjQueryライブラリには、Ajax通信でサーバーから取得したデータをハッシュ(JavaScriptのオブジェクト)として利用できるようにするためにjQuery.parseJSON() というメソッドがついています。(1.4.1〜)これ以前はXMLHttpRequestの処理とセットになっていて、JSONのパースだけ単体で利用できないようになっていました。(…といってもJSON文字列をevalしているだけだったようですが…) jquery-1.2.
JSON.parseとJSON.stringifyがサポートされた。 これは、JSON in JavaScriptのネイティブ実装と言える。 これからWebサイトでJSONを使う時は、 <head> <script type="text/javascript"> if (typeof JSON != "object") document.write('<script type="text/javascript" src="http://www.json.org/json2.js"></script>'); // 実際にはローカルに落したものを使う </script> <script type="text/javascript"> // JSON.parseやJSON.stringifyを使う処理 </script> </head> とすると、クロスブラウザで、なおかつ最新のブラウザだとネイ
JavaScriptのオブジェクトをJSONに変換する際、必ずと言っていいほど使われるのがjson2.js。 ECMAScript5(JavaScript2)では、json2.jsの実装をほぼ忠実に仕様として再現しており、Firefox3.5やSafari4ではネイティブの実装が利用できます。 例えば、JSオブジェクトをJSON文字列にしたい場合は、JSON.stringify(value, replacer, space)を利用できます。 valueはJSオブジェクト。 replacerは省略可能で、function(key, value)と言うシグネチャの関数オブジェクトを渡します。JS→文字列の変換ルーチンを独自に提供できます。 spaceは、結果の文字列を人間が読みやすくするための、インデントの数を指定します。 その逆に、JSON文字列をJSオブジェクトに復元したい場合は、JSON
多くのグローバルオブジェクトとは異なり、 JSON はコンストラクターではありません。また、 new 演算子と共に使用したり、関数として JSON オブジェクトを呼び出したりすることはできません。 JSON のプロパティとメソッドはすべて静的です(Math オブジェクトと同じです)。 JSON は、オブジェクト、配列、数値、文字列、論理値、 null をシリアライズする構文です。これは JavaScript の構文に基づいていますが、区別されるものです。 JavaScript ならば JSON であるというわけではありません。 オブジェクトと配列 プロパティ名は二重引用符で括った文字列にしなければなりません。末尾のカンマを置いてはいけません。 数値 先頭にゼロを置くことは禁止されています。また、小数点は 1 桁以上の数字の後ろに置かなければなりません。 NaN と Infinity には対
JSONをデータとしたAjax通信の実験をしようと思ったのですが、Ajax通信以外に何もやらないので、Ajaxのみのライブラリを探してみました。 すこし古め(2010年11月)の情報ですが次の記事を見つけました。 Ajax(XHR)如きにjQueryは重過ぎ!!な時の軽量ライブラリ集 ここで紹介されている microajax - Tiny AJAX library はほんとに小さいライブラリです。それを僕が膨らませてしまったのが下に貼り付けたソースです。若干読みやすくしたのと、ネイティブJSONサポートを使ってみたところが変更点です。 JavaScriptで書かれたJSON処理ライブラリがいくつかありますが、今ではブラウ自身が JSON.parse(text) と JSON.stringify(data) をサポートしています。古いブラウザへの考慮が不要なら、ネイティブJSONを使うとスッ
Douglas Crockford douglas@crockford.com 2006-04-17 (Updated 2012-08-10) Abstract XMLHttpRequest has a security model that is inadequate for supporting the next generation of web applications. JSONRequest is proposed as a new browser service that allows for two-way data exchange with any JSON data server without exposing users or organization to harm. It exchanges data between scripts on pages with
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く