- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- CrossSafe(安全にクロスドメインのJSONリクエストを行うライブラリ)を評価してみる へ行く。
- 1 (2007-09-27 (木) 11:16:55)
- 2 (2007-09-27 (木) 11:19:45)
CrossSafe(安全にクロスドメインのJSONリクエストを行うライブラリ)を評価してみる
Kris Zyp氏が開発したCrossSafeというライブラリの評価を行ってみます。
CrossSafe: Secure Cross Domain JSON
http://ajaxian.com/archives/crosssafe
このライブラリはJSONP提供側のセキュリティではなく、(マッシュアップサービスを作るといった際に)JSONPの利用側が悪意のあるJSONPを読み込んでもなんとかしようとするもののようです。
CrossSafe
http://www.xucia.com/#CrossSafe
CrossSafe provides secure cross domain JSON requests and partially implements the JSONRequest specification (the get and cancel methods).
チュートリアルがないので、ソースを読みながら理解した範囲をざっとメモしておきます。
- JSONPで受け取ったJSONのトップレベルがオブジェクトになっていない場合はエラーにする
- JSONPで受け取ったJSON内のfunctionは除去する
- 予め許可しておいたドメイン、ホスト以外からのJSONPは受け取らず、受け取らせようとした場合は許可されたドメインに強制リダイレクトする。
最後の箇所が実際にはどのようにして試せばいいのかよくわからないままです^^;
なんかどんどん、www.が頭についてリダイレクトされちゃう・・orz
http://www.xucia.com/CrossSafe/readme.html
によると、Setupに
2. Configure your web server and DNS entries to allow requests from webservice.mydomain.com, webservice1.mydomain.com,... webservicex.mydomain.com, where x is the maximum number of different domains you will access with CrossSafe.
という記述があり、この辺が効いてるっぽい。
また、CrossSafe.*** で挙動を変更できるというようにも記述があるのですが、
オブジェクト化されていないので、
Load CrossSafe in your web page: <script src="/CrossSafe/CrossSafe.js"></script> <script> CrossSafe.directory = '/CrossSafe/'; </script>
とかしても、CrossSafe.directoryに入る前の/CrossSafe/CrossSafe.jsのロードで実行される環境がデフォルトのコンフィグレーションで動作してしまっている。
もうちょい要調査です。