ブラウザで求められるクロスサイトのアクセス制限

JavaScriptでドメインを超えたデータのやりとりを行う場合のブラウザに求められるクロスサイトのアクセス制限の種類

FORM 制限なし(制限する場合はCSRF対策が必要)
SCRIPT 制限なし(JSONPへの応用が可能)
IMG インライン表示はできるが、SCRIPTから画像の中身は読めない
CSS レンダリングできるがSCRIPTから中身は読めない
IFRAME クロスサイトのDOM操作を禁止
XMLHttpRequest クロスサイトのリクエストを発行できない
XMLHttpRequest Level 2 クロスサイトのリクエストを条件付きで許可

http://labs.cybozu.co.jp/blog/kazuho/archives/2007/01/crosssite_security.php

XMLHttpRequest Level 2について

XMLHttpRequest Level 2に対応しているブラウザで外部サイトに対してXMLHttpRequest通信を行うと、ブラウザから送られるHTTPリクエストにOriginヘッダが付加される。Originヘッダにはドメイン名が設定される。

サーバー側から返されるHTTPレスポンスのAccess-Control-Allow-Originヘッダにアクセスを許可するリクエスト送信先のドメインを指定する。

XMLHttpRequest Level 2に対応しているブラウザは、Access-Control-Allow-Originヘッダの内容を確認して、それが現在のリクエスト送信元のドメインと一致している場合にのみ、レスポンスを受け取る。

通常は.htaccessなどでAccess-Control-Allow-Originヘッダに許可するドメインを羅列するが、その値に*を指定すると、すべてのドメインから利用できるようになる。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA