クロスドメイン処理

15,307 views

Published on

クロスドメイン処理について簡単にまとめてみた。

Published in: Technology
  • Be the first to comment

クロスドメイン処理

  1. 1. クロスドメイン処理について
  2. 2. クロスドメイン通信とは?クロスドメイン通信とは、ホストが異なるサーバーへアクセスすること。 サーバーA サーバーB
  3. 3. 実は、クロスドメイン処理は禁止されて いる。 サーバーA サーバーB 禁止
  4. 4. なぜクロスドメイン通信は 禁止されているのか?①クロスサイトスクリプティングが効果的 にならないようにするため。②DoS攻撃に使われないようにするため。
  5. 5. ①クロスサイトスクリプティングが効果 的 にならないようにするため。文字などを残せる掲示板などに、文字列でない、スクリプトを送り、サイト側で、そのスクリプトを排除する仕組みがなければ、そのスクリプトが実行される。もし、クロスドメイン通信が可能になれば、そのスクリプトで、攻撃者のサーバーに、ユーザーのCookieなどの情報が送られ、悪用される可能性がある。 サーバー 攻撃者のサーバー Cookieなどの 情報
  6. 6. ②DoS攻撃に使われないようにするため。特定のサーバへ短期間の連続アクセスをするスクリプトを書くことで、ユーザーにサーバ攻撃の肩代わりをさせることが可能になる。 攻撃対象のサーバー
  7. 7. クロスドメイン通信は禁止されているが、実は例外的に可能にする方法 がある。①JSONP②XMLHttpRequest Level2今回は、JSONPを使った、クロスドメイン処理の方法を説明。
  8. 8. JSONPとは?Scriptタグを使用して、クロスドメイン通信でデータを取得する仕組みのこと。HTMLとjavascriptとjsonを組み合わせて実現可能。
  9. 9. 具体的なJSONPの実装
  10. 10. ①データを受け渡す側の、データ出力の方法。 下の場合、サーバーB側の実装。サーバーA サーバーB ここの実装
  11. 11. Json形式のデータを引数とする関数をつ くり、それを出力する。 sample.jsonファイルを作成し、出力する。callbackという関数を定義。 JSON形式のデータ関数の名前は任意
  12. 12. ②データを受けとる側の実装。 下の場合、サーバーA側の実装。 サーバーA サーバーBここの実装
  13. 13. Javascriptで、Callback関数を定義する。また、外部のデータsample.jsonを読み取るようにす る。 順番が重要である。逆にしたら読み取れない。Index.htmlファイル
  14. 14. RailsでのJSON形式を引数とする関数の出力の方法。Railsでは非常に簡単に実装できるようになってい る。 コントローラーにjsonというアクションをつくり、renderメソッドを使い、 json形式を引数とする関数が定義されたものが出力される。 Callback : “関数名” で関数名を定義できるので、callbackという名前でなくて もいい。

×