Code Archive Skip to content Google About Google Privacy Terms
XSSにCSRFにSQLインジェクションにディレクトリトラバーサル……Webアプリケーションのプログラマが知っておくべき脆弱性はいっぱいあります。そこで本連載では、そのようなメジャーなもの“以外”も掘り下げていきます (編集部) 次は、JSONにおけるセキュリティ対策 皆さんこんにちは、はせがわようすけです。第4回「[気になる]JSONPの守り方」はJSONPについて説明しましたので、今回は「JSON」についてもセキュリティ上注意すべき点について説明します。 JSONは、XMLHttpRequestで受け取り、JavaScript上でevalするという使い方が一般的です。 まずはサーバ側から送られる情報と、クライアント側での処理、それぞれの内容を見ておきましょう。 [サーバ側] HTTP/1.1 200 OK Content-Type: application/json; charset=
2009年07月15日11:30 カテゴリLightweight Languages Ajax - iTunes Store 検索 へ? gist: 147213 - GitHub iTunes StoreってWeb APIもってたの? 持ってましたよ。しかもJSONPが使える。 http://www.apple.com/itunesaffiliates/API/AffiliatesSearch2.1.pdf というわけで、検索できるようにしてみました。 Demo JS Source いたってシンプルです。 (function(d){ var $ = function(id){ return d.getElementById(id) }; var json2list = function(json){ var ul = d.createElement('ul'); ul.style.lis
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、Yahoo!地図の開発を担当しています前田博敏です。 今回は、JavaScriptから外部サイトのWeb APIを直接呼び出すことができる、JSONPという手法について紹介させていださきます。 JSONPとは JSONPとは、JavaScriptの外部ファイル読み込み(「script」タグとその「src」指定)を利用して、ドメインの異なる外部サイトのデータを読み込む手法のことを言います。 JSONPを利用するには、呼び出される側のWeb APIがJSONP形式に対応している必要があります。 Yahoo!デベロッパーネットワークでは、現在のところローカルサーチAPIとショッピングAPIが、JSONP形式に対応しています。
Web APIとJSON Web上ではネットショッピング、ブログ、SNSなどさまざまなサービスが提供されています。これらのサービスの中にはWebブラウザから利用するだけでなく、サービスの機能の一部をプログラムから利用可能なAPI(Web API)として提供しているものもあります。Web開発者はWeb APIを利用したアプリケーションを開発したり、既存のWebサイトにWeb APIを利用した機能を追加することなどが可能です。 なお、Web APIを使用し、複数のサービスの機能を組み合わせたり、独自の機能を追加したサービスを構築することをマッシュアップと呼びます。 これらのWeb APIの多くはXMLで情報を返すものが多いのですが、中にはJSONで情報を返却するWeb APIも存在します。そこで、今回はJSONを使用するWeb APIの利用方法を紹介します。 Ajaxのクロスドメイン制約 しか
Google AJAX Feed APIとは? Google AJAX Feed APIはRSS/Atomなどの各種フィードを取得するためのJavaScript APIです。最大の特徴はクロスドメインでも他のサイトのフィード情報を簡単に取得できることです。Ajaxで使われるXMLHttpRequestはセキュリティの都合上、同一ドメインでしか通信できない仕様ですが、Google AJAX Feed APIはJSONPという仕組みを使うことでクロスドメインでの通信を実現しています。 詳細は省きますが、JSONPでは Google AJAX Feed APIを使うにはまず、Googleアカウントでログインし、Google AJAX Feed APIのサインアップページで自サイトのURLを入力し、API Keyを発行をする必要があります。サインアップページはこちら(http://code.goo
Ajaxianでちょろっと紹介されていたNextDB.netが、いろんな意味で、おもしろい。 NextDB.net is a revolutionary hosted database that lets AJAX applications leverage the full power of data-driven programming. In the past, creating a scalable data-driven website required knowledge of SQL and backend programming-- not anymore. Creating a powerful relational database is now as simple as logging into your NextDB account and using intuit
最近コードを晒してなかったので、場つなぎ的に。 大昔に作ったものに、JSON with Padding Tester というJSONPテスト用のツールがあるのですが、これをちょっとExt JS + jQuery(JSONPの呼び出しに利用)で書き直しました。 コードはこの前アカウントを作ったまま放置していたCodeReposに。下記からそのまま実行できます。 http://svn.coderepos.org/share/lang/javascript/jsonptester/trunk/jsonptester.html よくGoogle Codeでもやってるけれど、静的ファイルのホスティングとしてsvnレポジトリを使うのは、きっと本来の使い方ではないですね。ただ、見方を変えれば、最新版のコードがすぐに実行ができる環境が用意されているというのは、とっても有意義なことではないかと思います。もち
基本概念 JSONP (JSON with Padding) とは、HTML 文書において、Javascript を使って SCRIPT 要素を動的に追加することにより、リモートサーバへのリクエスト・データの取得を可能にする技術である。 JSON という名前はついているが、取得できるデータは JSON 形式に限らない。(XMLHttpRequest の取得データが XML 形式と限らないのと、皮肉にも似ている) SCRIPT 要素を追加すると、ブラウザは Javascript ファイルをリモートサーバから読み込もうとするが、この Javascript ファイルは、読み込まれたと同時に実行されるので、ここで読み込み元のインターフェイスとなる関数を呼び出し、サーバから取得したデータを受け渡すのである。 もっとも単純化された例を示す。 <!-- ブラウザ側(jsonp_client.html)
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧
JavaScriptjQuery を使って JSONP でリクエストする方法を2通り紹介するよ。その1: $("")createElement を $() を使って実装。 $("") .attr('type', 'text/javascript') .attr('src', "http://www.example.com/jsonp.cgi?param1=value1&callback=myCallback") .appendTo($("head")); function myCallback(json){ // ロード完了時にここが呼ばれる } http://www.example.com/jsonp.cgi?param1=value1&callback=myCallback にリクエストがいく。callback のところは、サービスによって指定の仕方が違うかもね。その2: $.ajax
ウレタン系高反発マットレスでよく言及されるのが密度です。それを頑張って分かりやすく説明してみます。
以前の続き。JavaScriptからプライベートデータの参照、更新が出来る。Google Account Authenticationの仕組みを利用している。この前動かなかったサンプルはいつの間にか動くようになってた。 最初プロトコルは勝手にJSONPと思ってたけど、中身見てみたらIFRAME 使った fragment identifier (window.location.hashの値、URLの#以降)による通信だった。たしかに、IEで音をONにしたらクリック音カチカチする。ちなみにfragment identifierによるクロスドメイン通信は他にdojoがライブラリとして実装しているのは知っているけど、これだけ大々的にサービスで使われてるのを見たのは初めて。もっとも、ブラウザでクロスドメイン通信を達成する方法のうち現時点でもっともマシなのはこれじゃないかという意見もある。 解析してみ
「はじめてのJSONPプログラミング」に関連して、JSONPについてもう少し詳しく調べてみました。 JSONPは、「JSON with Padding」の略で、JSONを用いた関数呼び出しの仕組みのことです。 JSONP 「JSON with Padding」とは: - IT用語辞典バイナリ JSONは、「JavaScript Object Notation」の略で、構造化されたデータを記述するためのテキストベースのデータ記述言語の一つです。 JSONとは:ITpro JavaScript Object Notation - Wikipedia JSONPは、異なるドメインで提供されている機能を直接呼び出すことも可能な点で、XMLHttpRequest(XHR)などのHTTPリクエストよりも優れています。(XMLHttpRequestは、JSONPと同様にHTTP通信でデータをやり取りでき
Ringとは、リクルートグループ会社従業員を対象にした新規事業提案制度です。 『ゼクシィ』『R25』『スタディサプリ』など数多くの事業を生み出してきた新規事業制度は、 1982年に「RING」としてスタートし、1990年「New RING」と改定、そして2018年「Ring」にリニューアルしました。 リクルートグループの従業員は誰でも自由に参加することができ、 テーマはリクルートの既存領域に限らず、ありとあらゆる領域が対象です。 リクルートにとって、Ringとは「新しい価値の創造」というグループ経営理念を体現する場であり、 従業員が自分の意思で新規事業を提案・実現できる機会です。 Ringフロー その後の事業開発手法 Ringを通過した案件は、事業化を検討する権利を得て、事業開発を行います。 さまざまな事業開発の手法がありますが、例えば既存領域での事業開発の場合は、 担当事業会社内で予算や
iandeth. Perl, Flash ActionScript, MySQL, Movable Type, システム開発 - そんなテーマのサイトdeth. 最近遅ればせながらjQueryを使い始めてみているのですが、jQueryは標準ではクロスドメインのJSONPリクエストに対応していないようでした。AJAX系APIの中には $.getScript() のようにレスポンスをjavascriptソースとして実行するものもありますが、あくまで同一ドメイン内通信に限定されているので、「JSONP対応のWebサービスからデータを直接取得」のような用途には使えません。 じゃあ、ということで随分前 (2006-01-25) にMichael Geary氏がJSONP用のjQueryプラグインをさくっと作って公開してくれています: JSON for jQuery - mt.to これでとりあえずは
JSONPの動作原理 前回はAjaxに存在するセキュリティモデルであるSame-Originポリシーを紹介し、そのSame-Originポリシーを迂回する方法とセキュリティについて見てきました。また、回避する方法の1つめとしてリバースProxyを用いた方法を紹介しました。リバースProxyを用いた方法ではセキュリティ的な問題点もありましたが、そもそもProxyサーバを用意しなければならないため、この方法は手軽に使うことはできませんでした。 そこで考え出されたのがJSONP(JavaScript Object Notation with Padding)という方法です。 それではまず簡単にJSONPについて説明します。 Ajaxで使われるXMLHttpRequestオブジェクトには前回説明したとおりSame-Originポリシーがありクロスドメインアクセスはできません。一方、SCRIPTタグ
このブログでは、ずいぶん前に作った「JSONで使えるサービス一覧」というエントリが今のところずっと人気エントリらしいです。最近いっぱいJSONPサービスは出てきてるっぽいので、もしかして少しでもこのエントリが役に立ってくれていたならうれしいことです。 でも、そもそもブログの1エントリだったことですし、ずっとページをメンテしてないので、もはやJSONP情報のディレクトリとして扱うには古いと言わざるを得ません。でもメンテも大変なので、できればユーザ参加型でメンテしたいところです。 おそらくこういうののためにたぶんWikiとかがあるのかもしれないですが、なんか別の方法を使ってみたくなって作りました。 で、作ったのが、こんなの。 http://www.geocities.jp/stormriders999/jsonpdirectory.html JSONPのディレクトリサービスなので、JSONP(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く