ドメインホワイトリストガイド
概要
Apache Cordova のドメインホワイトリストは、 http://google.com
などの外部ドメインへのアクセスを制御するセキュリティモデルです。デフォルトのセキュリティポリシーは全てのネットワークアクセスをブロックします。アプリケーション開発者は、特定のネットワークのドメインやサブドメインへのアクセスを宣言して許可できます。
仕様
ドメインホワイトリストは W3C Widget Access の仕様に基づいています。 Widget Access 仕様の中で、 <access>
要素はネットワークドメインへのアクセス許可を指定するために使われています。将来、 Apache Cordova はホワイトリスト実装のプラットフォームの W3C Widget Access 仕様書。しかしながら、現在は各プラットフォームは各々のドメインホワイトリストを実装する必要があります。
シンタックス
google.com へのアクセス:
http://google.com
google.com へのセキュアアクセス (https://
):
https://google.com
maps.google.com サブドメインへのアクセス:
http://maps.google.com
google.com のすべてのサブドメインへのアクセス (例: mail.google.com 及び docs.google.com):
http://*.google.com
すべてのドメインへのアクセス (例: google.com 及び developer.mozilla.org):
*
Android
詳細
ホワイトリストのルールは res/xml/cordova.xml
で見つけることができ、 <access origin="..." />
要素によって宣言できます。
Android はホワイトリストのシンタックスをフルサポートしています。
シンタックス
google.com へのアクセス:
<access origin="http://google.com" />
Bada
ドメインホワイトリストは Bada ではサポートされていません。デフォルトとして、全てのドメインにアクセス可能です。
BlackBerry
詳細
ホワイトリストのルールは www/config.xml
で見つけることができ、 <access uri="..." />
要素によって宣言できます。
詳細については、 BlackBerry WebWorks Access Element documentation を参照してください。
シンタックス
google.com へのアクセス:
<access uri="http://google.com" subdomains="false" />
maps.google.com へのアクセス:
<access uri="http://maps.google.com" subdomains="false" />
google.com のすべてのサブドメインへのアクセス:
<access uri="http://google.com" subdomains="true" />
file://
プロトコルを含むすべてのドメインへのアクセス:
<access uri="*" subdomains="true" />
iOS
詳細
Cordova.plist
を開きます- Xcode 内では
AppName/Supporting Files/Cordova.plist
で見つけられます - ディレクトリ内では
AppName/Cordova.plist
で見つけられます
- Xcode 内では
ExternalHosts
キー配下に新しい文字列を追加します- XML の直接編集を避けるため、 Xcode を使用することを勧めます
ドメインのプロトコル (例: http://
及び https://
) は iOS ではサポートされていません。
シンタックス
google.com のアクセス及び google.com へのセキュアアクセス (https://
):
google.com
maps.google.com サブドメインへのアクセス:
maps.google.com
google.com のすべてのサブドメインへのアクセス (例: mail.google.com 及び docs.google.com):
*.google.com
すべてのドメインへのアクセス (例: google.com 及び developer.mozilla.org):
*
iOS のワイルドカード (*
) は W3C Widget Access の仕様より柔軟です。
すべてのサブドメインへ及び TLD (.com
, .net
など) へのアクセス:
*.google.*
Symbian
ドメインホワイトリストは Symbian ではサポートされていません。デフォルトとして、全てのドメインにアクセス可能です。
webOS
ドメインホワイトリストは webOS ではサポートされていません。デフォルトとして、全てのドメインにアクセス可能です。
Windows Phone
ドメインホワイトリストは Windows Phone ではサポートされていません。デフォルトとして、全てのドメインにアクセス可能です。