XHRによってやり取りされるデータによるXSS 皆さんご存じの通り、Internet Explorer(以下、IE)ではContent-Typeに従わずにコンテンツをHTML扱いすることがありますので、XHRでやり取りされるデータを直接IEで開いた場合にXSSが発生することがあります。
今日、マイクロソフト本社から来た David さんとお昼ご飯をしたときに教えてもらえた彼のプロダクトが凄かったので紹介したいと思います。 quicktype.io quicktype JSON をペーストするとシリアライズ・デシリアライズするためのコードを出力してくれるサービスです。 例えば、以下のような JSON があるとします。 { "name": "Kazuki Ota", "age": 36, "pets": [ { "name": "hoge" }, { "name": "foo" } ] } ページに張り付けるとこういうコードが生成されます。 // To parse this JSON data, add NuGet 'Newtonsoft.Json' then do: // // using Sample.Models; // // var data = Person.Fro
で完了 なければ nodeのバージョンをnで管理する などを読みつつnodeとnpmをインストールしてください 準備するもの コンソール db.json ブラウザ(動作確認用) やること db.json ファイルを作成する bashの touch コマンドやWindowsなら右クリックからなどでお好きなようにファイルを作ってください db.json にリソースを登録する ここでモックサーバから返して欲しいデータリストを列挙します 最上位の階層の key がエンドポイントになります { "users": [ {"id": 1, "name": "hoge"}, {"id": 2, "name": "fuga"} ], "tweets": [ {"id": 1, "contents": "あー眠い", "user-id": 1}, {"id": 2, "contents": "ファビュラス!"
Jackson の、普段あんまり使わない機能過ぎて使いたいときに忘れてぐぐって時間を浪費してしまうようなケースを回避するためにメモメモします。随時更新予定。 見ればわかりますが、元ネタはほぼすべて Stack Overflow です。英語だけだと読むのが辛い、という方向け(主に自分)にまとめています。 snake_case でプロパティを表現している JSON と camelCase で表記している POJO をマッピングしたい java - Jackson overcoming underscores in favor of camel-case - Stack Overflow より。 引数に PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES PropertyNamingStrategy.SNAKE_CAS
にあります。 Streaming API Streaming APIはデータを順に読み込みながら処理するため、最もパフォーマンスの良い方法ですが、特定の要素を取得するような用途には不向きです。 読み込み … org.codehaus.jackson.JsonParser 書き込み … org.codehaus.jackson.JsonGenerator 読み込み String data = "{\"a\":123,\"b\":true}"; JsonFactory factory = new JsonFactory(); try { JsonParser parser = factory.createParser(data); while (parser.nextToken() != JsonToken.END_OBJECT) { String name = parser.getCurre
JavaのオブジェクトをBSON形式でファイルに保存する為、いくつかの実装を試してみました。 BSONのバイナリに変換できるライブラリ BSONのページのImplementationにJava実装が列挙されている為、今回はこれらを試してみました。 mongo-java-driver bson4jasckson ebson mongo-java-driver 名前にあるとおりMongoDBのドライバですが、BasicBSONEncoderを使って、Javaのオブジェクト(BSONObjct)を直接BSONのバイナリに変換することもできます。バイナリからBSONObjctに戻すには、BasicBSONDecoderを使います。 bson4jasckson JSONを扱うJacksonのFactoryを拡張してBSONを扱えるようにしたのがbson4jascksonです。Jacksonと同様、O
package sample.jackson; public class Hoge { public int id; public String name; @Override public String toString() { return "Hoge [id=" + id + ", name=" + name + "]"; } } package sample.jackson; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; public class Main { public static void main(String[] args) throws JsonProcessingException { Hog
1. 導入 GeoJSON は様々な地理的データ構造をエンコードするためのフォーマットです。 GeoJSON オブジェクトはジオメトリ、フィーチャー、もしくはフィーチャーのコレクションを表現します。 GeoJSON は Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, そして GeometryCollection というジオメトリタイプをサポートします。 GeoJSON のフィーチャーはジオメトリオブジェクトと追加属性、 それからフィーチャーのリストを表現するフィーチャーコレクションを含みます。 完全な GeoJSON のデータ構造はいつも (JSONの用語でいう) オブジェクトです。 GeoJSON では、オブジェクトは名前と値の組 (メンバーとも呼びます) の集合で構成されます。 メンバーの名前
(Last Updated On: 2023年12月8日) 追記:最近のOWASPガイドの更新でJavaScript文字列はUnicodeエンコードで安全性を確保するよう変更されました。元々このブログでもUnicodeエスケープのまま利用するように書いています。他の言語のユーザーはUnicodeエスケープを利用しましょう。PHPもASCII領域の文字をUnicodeエスケープするようにした方が良いと思います。これは提案して実現するように努力します。 JSONはJavaScriptのオブジェクトや配列を表現する方式でRFC 4627で定義されています。メディアタイプはapplication/json、ファイル拡張子はjsonと定義されています。 PHPにJSON形式のデータに変換するjson_encode関数とjson_decode関数をサポートしています。 JSON関数がサポートされている
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として読み込みます。もちろ
複雑なデータ構造のJSONを扱う際にCSSセレクタ風にアクセスできて超便利な「JSONSelect」 2011年05月25日- JSONSelect 複雑なデータ構造のJSONを扱う際にCSSセレクタ風にアクセスできて超便利な「JSONSelect」 jQuery成功の背景には、そのDOMへのアクセスのしやすさがひとつの要因だと思いますが、JSONSelectを使うと、JSONデータへのアクセスをCSSセレクタっぽく、jQueryっぽく簡単にアクセスできます。 例えば、次のようなJSONデータがあったとしましょう。 JSONSelectで、「.languagesSpoken .language」として選択すると、次のように要素を選択できます。 例えば、検索結果などで、同じ構造の要素がリストとして帰ってくるようなケースにおいて、同じ名前の属性リストをサクッと取得可能。 上位階層が指定できるた
kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から本格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl
JavaScript is a general purpose programming language that was introduced as the page scripting language for Netscape Navigator. It is still widely believed to be a subset of Java, but it is not. It is a Scheme-like language with C-like syntax and soft objects. JavaScript was standardized in the ECMAScript Language Specification, Third Edition. JSON is a subset of the object literal notatio
僕自身も僕の周辺もJSONをよく使います。でも、細かい点でけっこうミスをやらかしています(苦笑)。このエントリーで、JSONを使う上で注意すべきこと/間違いやすい点をすべて列挙します。 内容 兼チェックリスト: 仕様原典さえ読めば完璧(のはずだが) 数値の前にゼロを付けてはいけない 16進数表記も禁止だよ 数値の前にプラスを付けてはいけない 小数点からはじまる数値はダメ 用語法が違うよ:プロパティとメンバー メンバー名には常に文字列を使う 空文字列""もメンバー名に使える 配列要素はキッチリと並べよう 文字列を囲むには二重引用符だけ 文字列内のエスケープが微妙に違う 仕様にないエスケープは構文エラー undefinedもNaNもありません ラッパーオブジェクトは使わないのが吉 型システムとtypeofに関する注意 最後に 仕様原典さえ読めば完璧(のはずだが) JSONは、小さくて簡単な仕様
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く