第5回:APIとの連携・脆弱性への対応 (2/4)

SNSのサービス利用
ソーシャル・ネットワーキング・サービスのビジネス利用

第5回:APIとの連携・脆弱性への対応
著者:イースリー  戸辺 淳一郎   2006/5/15
前のページ  1  2   3  4  次のページ
マッシュアップの仕組み

   どうして機械が複数のサイトを同時に検索できるのでしょうか。少し技術的な内容になってしまいますが、もう少し深く見てみましょう。

   一般的なWeb上のサービスは、HTMLという「人間」が理解できるファイル形式で結果が返ってきます。それに対して、APIでは「機械」が理解しやすいXML形式で結果が返ってきます。XMLであれば仕様を明確に定義することができるので、プログラム側ではその仕様に則って、データを解析したり整形したりすることが容易になるのです。

   図3の例ではこの仕組みでGoogleとAmazonの検索結果のXMLを解析し、それらを組み合わせて「人間」に見やすいHTMLに整形して表示することで、GoogleとAmazonの同時検索を実現しています。


SNSにおける外部サービスのAPI連携

   前項図3の例と同様に、SNSにおいても標準で備わっている機能と外部サービスのAPIを連携させることで、より利便性の高い機能を提供することができます。例えばmixiではAmazonのAPIと連携し、会員が自分の好きな本のレビューなどを書けるようになっています。

   comnitでもmixiと同様にAmazonのAPIと連携し、自分の好きな本などをオススメとして登録することができるようになっています。その他にも、会員のプロフィール情報の一部である「現住所」というデータと、livedoorなどが提供している天気予報のAPIを連携させて、会員の住んでいる地域の天気予報を画面に表示することも簡単に実現できます。

   前回から解説しているように、SNSに求められる機能はコミュニティの目的によって違い多岐に渡ります。その目的を果たすためには、SNSの中だけでは完結しない場合も考えられるでしょう。そのような時に外部のAPIとうまく連携することができれば、SNSの機能に幅を持たせ、コミュニティの目的を実現させていくことができるのです。

   将来的な外部APIとの連携を視野にいれると、「外部のAPIへのアクセスメソッド」や「外部のAPIへのアクセスメソッドから返される『結果XML』の処理メソッドなどが用意されているSNSエンジン」を使った方が効率のよいカスタマイズが行えるでしょう。

   先月オープンした表参道comnitでは機能をカスタマイズして、Google MapsのAPIと連携し、表参道の様々なショップを地図上に表示することができるようになっています。

   また、まだあまり見かけられませんが、SNS側がAPIを公開するということも考えられます。会員がSNSとは別のところで別のサービスを利用する時に、SNS内のちょっとした機能と連動させることができるところを想像してみてください。

   例えば自分のblogに、SNS内の自分のオススメの本を紹介したりすることも簡単にできるようになります。コミュニケーションの幅を広げることはマーケティングの視点からも重要なことです。


セキュリティ対策

   前回から前項までSNSの持つ仕組みや機能など、いわばSNSの攻撃的な面を紹介してきましたが、もちろん守備的な面も大切です。守備的な面、それはセキュリティ対策を指します。

   まず、アプリケーションに潜むほとんどの脆弱性は「正しいプログラミング」により回避できるものです。よく耳にするSQLインジェクションやXSS(クロスサイトスクリプティング)の脆弱性というものは、正しいプログラミングを行っていれば、特別な対策を施さなくてもよいのです。


SQLインジェクション

   SQLインジェクションの脆弱性はリクエストされたデータを正しくチェックして、データベース(DB)に送出するSQL構文が正しいものになるようにすれば回避できます。これは改まって「SQLインジェクション対策をする」というより、正しく動作するアプリケーションを作成する上で当然のことです。

   SQLインジェクションの脆弱性はアプリケーションにとって致命的な問題となりえますし、実際に事件になったものも多くあります。しかしそれらの事件はSQLインジェクション対策を怠っていたというよりは、むしろ初歩的なプログラミングのミスでしょう。


XSS脆弱性

   XSSの脆弱性は出力するデータを正しくチェックして、サニタイジング(注2)を行えば回避できます。これも特に対策を施すというよりは、アプリケーションの動作を制御するという意味で当然のことだと思います。ユーザに対してHTMLのタグの使用を許可せず、すべてのタグを無効化してしまえばよいのです。

※注2:
入力されたデータからHTMLタグやJava Script、SQL構文の文字を検出し、置き換えを行うことで無害化すること。

   しかしすべてのタグを無効化することは、ユーザに対してよりリッチな表現力を提供しようとした場合、つまりHTMLタグの使用を許可する場合には注意が必要です。ある一部のタグだけを許可するというのは案外難しく、許可したタグだけを使って悪意あるスクリプトを混入する手段がないかどうかを検証するのは大変です。comnitの標準機能ではユーザにタグ使用を許可していません。

前のページ  1  2   3  4  次のページ

製品紹介
「SNSエンジン、comnit(コムニット)」
本連載は株式会社イースリーおよび株式会社ラソナの開発したSNSエンジン、comnitの利用ケースをもとに記事を掲載しています。

comnitで作り上げたコミュニティを生かして、お客様のマーケティング手法に合わせた実践的なケースをご紹介いたします。

詳細はコチラ
http://www.comnit.jp/
http://www.e-3.jp/
株式会社イースリー 代表取締役CTO 戸辺淳一郎
著者プロフィール
株式会社イースリー
代表取締役CTO   戸辺淳一郎

2003年8月にイースリーを設立。Webシステム構築の請負、パッケージ開発を行うかたわら自社サービスの展開を目指している。Webアプリの開発の現場においては、最高の品質を提供できるようにすることを追求している。現在では主にプロジェクトマネジメントに携わっているが、現場の技術から離れないように、毎日趣味でのプログラミングも欠かさない。毎日何かを吸収しないと気がすまない。

INDEX
第5回:APIとの連携・脆弱性への対応
  API連携
マッシュアップの仕組み
  CSRF(クロスサイトリクエストフォージェリ)の脆弱性への対処
  今回のまとめ
ソーシャル・ネットワーキング・サービスのビジネス利用
第1回 ソーシャル・コミュニティ・マーケティングとは?
第2回 ソーシャル・コミュニティ・マーケティングを実践しよう!
第3回 ソーシャル・コミュニティ・マーケティングの目的を達成するには
第4回 ソーシャル・コミュニティ・マーケティングを支える仕組み
第5回 APIとの連携・脆弱性への対応

人気記事トップ10

人気記事ランキングをもっと見る