Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
TL;DR JSON Schemaを使ってこういうことが実現可能になった。 ダミーAPIサーバの提供 ドキュメントの自動生成 APIクライアントの動的定義 APIサーバのバリデータの動的定義 APIサーバのレスポンスの自動テスト JSON Schemaとは JSON SchemaというのはあるJSONのデータ構造を記述するための方法および書式の仕様で、 JSON SchemaもJSONで記述される。 これを利用すれば、リソースベースの(=RESTfulライクな)APIの仕様が簡便に記述できる。 例えば、我々のAPIはレシピとユーザというリソースを扱っていて、 それぞれCRUDのAPIを備えており、レシピはidとtitleとdescriptionという属性を持つ、 という旨をJSON Schemaで表現できる。 なんで最近ちょっと流行ってんの Mobile First、 Service Or
なんか、enchantMOONの新バージョンが出るらしいですね。今まで持っていた人もソフトウェアアップデートで新製品と同等の内容が受けられるとか。 リンク先にはenchantMOON開発の偉い人であるところのid:shi3z氏がいろいろ経緯とかそういうものを書いているのですが、まあ長い。その上宣伝も兼ねているので美辞麗句が並んでいます。 私、過去のエントリを見てもわかるとおりenchantMOONの購入者です。やはり、こういうコトに関する文句は買った人だけに言える資格があるのではないか、そういう気持ちでそのエントリを読み下してみようと思います。 読み下すにあたって、採用する仮定は以下の3つです。 不利なことは書かないことはあるかもしれないが、嘘は書かれていない。 いろいろ裏事情が読み取れる場合は、一番下世話な理由を想像する。 過小表現、過大表現もあるかもしれないが、一番セコい方向の内容を想
Enterprise x HTML5 Web Application Conference 2014の発表資料です。
(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関数がサポートされている
If you've ever tried to add comments to a JSON file, you'll have found that it's impossible. To clarify, I'm not talking about object literals in javascript, I'm talking about real JSON that a JSON parser can parse. This is unfortunate, especially in cases where a JSON file is being used a configuration file. It's nice to be able to document your settings. But I seem to have found a little hack th
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として読み込みます。もちろ
そろそろ4月も近いということもあって、新たにWeb業界やSIer業界に入るぞという方がプログラミングの勉強をし始めているころでしょうか。最近は、エンタープライズでもWebクライアントが主流になりつつあるのでJavaScriptの習得は避けては通れない道だと思います。また、Node.js等サーバーサイドのJavaScriptも出てきたこともあって、非常に有用な言語になりつつあります。 そんなJavaScriptを学び始めている人の中でも、ある程度プログラミングをやったことがある人がJavaScriptの綺麗な書き方を学ぶのに絶対理解しておいた方が良い300行程度のソースコードがあります。 それは、JavaScript: The Good Partsに載っているJSONパーサのコードです。 JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス 作者:
Ajaxなアプリケーションにおいて、サーバからJSONを返す場合に、JSON自体はvalidであるにも関わらず、(IEの都合で)エスケープが不足していて脆弱性につながってる場合があるので、書いておきます。 発生するかもしれない脆弱性 JSONのエスケープが不足している場合に発生する可能性のある脆弱性は以下の通りです。 JSON内に含まれる機密情報の漏えい XSS それぞれの詳細については後述します。 開発側でやるべきこと 文字列中のUnicode文字は "\uXXXX" な形式にエスケープするとともに、ASCIIな範囲であっても「/」「<」「>」「+」も同様にエスケープすることにより、前述の脆弱性を防ぐことができます。 Perlであれば、以下のような感じになります。JSON->ascii(1) に続けて、JSON文字列を正規表現で置換しているあたりがキモになります。 use utf8; u
2009年04月13日12:00 カテゴリTips Ajax - tips - JSONPをブラウザにキャッシュさせない というわけで、添削おじさん登場。 [を] 笑い顔顔文字APIを作りました (なお、なぜか IE と Safari だと一回しか動きません。添削希望!)理由は単純で、IEとSafariはJSONPをキャッシュしてしまうのです。 理由がわかれば、解決法も簡単です。たとえば以下のようにしてURIをUniqueにしちゃえばOK. function WarosuJSON(cb){ this.proxy = 'http://mimitako.net/api/warosuapi.cgi'; this.cb = cb; this.count = 0; this.parse = function(cb){ var script = document.createElement('scri
笑い顔顔文字APIを作りました 2009-04-12-2 [Release][Programming][Neta] goo の『「大笑い感」が伝わる顔文字ランキング』、面白いですね。 - 「大笑い感」が伝わる顔文字ランキング (goo ランキング) http://ranking.goo.ne.jp/ranking/092/laugh_kaomoji/ これを見て、笑い顔顔文字APIを作りました。 アクセスするたびに笑い顔がランダムでXMLで帰ってきます。 - 笑い顔顔文字API ttp://mimitako.net/api/warosuapi.cgi http://yapi.ta2o.net/apis/warosuapi.cgi 「format=json」で、JSON, JSONP も使えます。 (http://yapi.ta2o.net/apis/warosuapi.cgi?format
JSON(http://www.json.org/)データはけっこうよく使うので、何度か話題にしたことがあります(例えば「もう一度、ちゃんとJSON入門」)。でも、JSONには型情報/メタ情報が付けられないのがとても不満で、JSON改なんてもんを考えたこともありました。(後でXIONに改名) JSONデータに対するスキーマ定義の仕様がかたまりつつあることを、ごく最近になって知りました。 http://json-schema.org/ JSON本体はRFC 4627になっていますが、JSONスキーマの標準化のステータスは、あまりハッキリとは分かりません(僕には)。http://groups.google.com/group/json-schema?pli=1 を覗き見した感じでは、現状ワーキングドラフトという位置付けらしいです。 なかなか面白いし役に立ちそうなので紹介します。ただし、僕にとっ
なんでも JSONP で取れるので、どこかでベーシック認証通していると、認証ダイアログも出ずに DM のぶっこ抜きなんかが出来てしまったりする。 DM を JSONP で取得するデモ(ソース見て貰えればわかるけど、サーバサイドにデータ送ったりしてません) http://kaz.july.7.googlepages.com/twitter_dm_jsonp.html まあ予想通りといえば予想通りだけど DM なんかが JSONP できるのはちょっと問題なんじゃないかなと思う。 最初から一貫して、セキュリティなどに関しては twitter はあてに出来ないのは何も変わっていないので protected や DM なんかで、公開されたら不味い情報のやりとりをしているような人は気をつけた方が良いでしょう。
米 Yahoo! が Yahoo! Pipes みたいに自由度が高くて、またちょっと毛色が違うサービスが出てきた。題して、Yahoo! Query Language。YQL と呼ぶようだ。SQL 風の言語を REST で投げて、結果を XML や JSON で受け取ることができる。具体的にやってみないと分かりにくいので、とりあえず試してみた。RSS からデータ取得YQL を使って RSS から最新のタイトル10個を取ってきてみる。こんな YQL になるらしい。 select title from rss where url='http://d.hatena.ne.jp/nitoyon/rss' rss テーブルに対して select を発行している。実際にこの YQL を試すには YQL 用の console を利用するとよい。(※要ログイン)console の左上に YQL を入力して
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> とすると、クロスブラウザで、なおかつ最新のブラウザだとネイ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く