アプリマニフェストに関する FAQ

なぜ自分のアプリにマニフェストが必要なのですか?
アプリマニフェストは、ユーザとアプリストアのいずれも使用可能なシンプルなドキュメントの形式で、アプリに関する役立つ情報 (名称、開発者、アイコン、説明など) を提供します。最も重要なことは、アプリが必要とする (位置情報通知機能 などの) WebAPI のリストを含んでいるという点です。これによってユーザは情報を得た上でアプリをインストールすることが可能となります。
Open Web App のマニフェストは Google Chrome の拡張機能やインストール可能な Web アプリで使われているものと同じですか? あるいは W3C ウィジェットのマニフェスト、HTML5 キャッシュマニフェスト と同じですか?
いいえ、そのどれでもありません。Open Web App のマニフェストはおそらく Google のマニフェストに最も近いものですが、まったく同じではありません。Open Web App のマニフェストは標準化を目指しています。
生成元 (オリジン) とは?
アプリの生成元は、URL のプロトコル、ドメイン、ポート番号を合わせたものです。以下のそれぞれの URL は異なる生成元です:
  • http://example.com
  • http://example.com:8080 (別ポート)
  • https://example.com (別プロトコル)
  • http://www.example.com
  • http://myapp.example.com (サブドメイン)
以下の URL は同じ生成元です:
  • http://Example.com:80
  • http://example.com
以下の URL は同じ生成元です:
  • http://example.com/drawingApp
  • http://example.com/notesApp
なぜアプリマニフェストをアプリと同じ生成元に置く必要があるのでしょうか?
私たちは、アプリと同じ生成元にアプリマニフェストをおけるのはあなただけであると考えます。つまりユーザは、誰か他人ではなくあなたのアプリマニフェストに基づいてインストールが行われると、自信を持ってあなたのアプリをインストールできると言うことです。Firefox Marketplace から、他のアプリストアから、あるいはアプリを自主配布する場合はあなた自身のサイトからアプリをインストールする場合も、ユーザはこうした自信を持つことができます。
アプリマニフェストがアプリと同じ生成元に置かれていない場合、あなたの生成元にホストされているコンテンツから第三者がアプリを作るような行為を止めることができません。さらに悪いことに、第三者があなたのブランドを使ってアプリマニフェストを作成し、ユーザをだまして偽のアプリをインストールさせ、裏ではパスワードを盗み出すような不正行為を行うことが可能となってしまいます。
他の生成元の画像や JavaScript を埋め込めないということでしょうか?
いいえ、生成元の制限はコンテンツ (HTML ページ) のみです。画像はその他の埋め込みリソースは (例えば CDN など) 他の場所に置くことも可能です。ただしアプリのアイコンだけは例外で、これはアプリと同じ生成元に置く必要があります。
自分の生成元から複数のアプリを提供することはできますか?
いいえ、ひとつの生成元に置けるのはひとつのアプリだけです。複数のアプリをひとつの生成元に置けるようにした場合、それらは同じ Web サンドボックス内に共存することになります。互いに localStorage の内容を調べたり、互いの API に対して Ajax リクエストを起こったり、ひとつのアプリだけに与えられている特権付き API へのアクセスを盗んだりといったことも可能となってしまいます。多くのユーザが自分で作成したコンテンツを公開しているドメインでは特に危険です。
アプリごとに別々のサブドメインを使用することをお勧めします。例えば、ひとつのアプリに spreadsheet.mycoolapps.com を割り当て、別のアプリには texteditor.mycoolapps.com を使うといった具合です。詳しくは アプリのためにサブドメインを追加する を参照してください。
Web 上の多くリソースや権限は既にひとつの生成元に制限されています。アプリと生成元を同じように定義することで、Web 上のあらゆる場所あるいは HTML5 で使用されているのと同じセキュリティ制限を使用することができます。
なぜ Firefox Marketplace へ直接アプリマニフェストをアップロードしないのでしょうか?
マニフェストをあなたのドメインに起き、そのマニフェスト URL を Marketplace へ提供することにはいくつかのメリットがあります。
  • Marketplace (や他のアプリストア) は、提供された URL を参照し、すべてのアプリマニフェストについて更新がないかどうか定期的にチェックする予定です。これによって更新のたびにマニフェストを再度アップロードする手間を省くことができます。
  • Marketplace は元のアプリマニフェストの内容とその URL の両方をユーザの端末へ渡します。これによって端末は、改ざんの可能性を示すアプリマニフェストへの予期せぬ変更を確認できます。これは (位置情報通知機能などの) WebAPI を使用しているアプリについては特に重要です。
なぜアプリマニフェストを公開する際に自分の Web サーバが適切な HTTP Content-Type を使わなければならいのでしょうか?
この制限は、ユーザ生成コンテンツのアップロードを許可しているサイト (例えばペーストビンサイトなど) のユーザが、故意にせよ過失にせよそのサイト全体を自分のアプリとして主張してしまうようなことを防ぐためです。
アプリマニフェストの公開に HTTPS を使うべきですか?
はい、それは良い考えです。Firefox Marketplace は (位置情報通知機能などの) WebAPI を使用するすべてのアプリに対し、中間者攻撃を防ぐ追加対策として HTTP を通じてマニフェストを公開するよう求める予定です。マニフェストに HTTPS を使う場合、サイト上のすべてのページにも同じように HTTPS を使わなければなりません。
誰かが自分のアプリを Firefox Marketplace へ登録した場合はどうなりますか?
誰かがあなたのアプリマニフェストの URL を推測し、あなたより前にそれを Firefox Marketplace へ登録してしまったという残念なことが起きた場合は、Marketplace のサポートチーム に苦情を申し立ててください。

関連記事

アプリマニフェスト

Document Tags and Contributors

タグ:
Contributors to this page: ethertank, Yoshino
最終更新者: Yoshino,