mozilla

Compare Revisions

Application security

Change Revisions

Revision 360049:

Revision 360049 by ptheriault on

Revision 363273:

Revision 363273 by dchan on

Title:
Application security
Application security
Slug:
Mozilla/Firefox_OS/Security/Application_security
Mozilla/Firefox_OS/Security/Application_security
Content:

Revision 360049
Revision 363273
n108      FirefoxOS supports three types of Web Apps: "Web", "Privilen108      FirefoxOS supports three types of Web Apps: "Web", "Privile
>ged" and "Certified". An App's type is declared in it's <a href=">ged" and "Certified". An App's type is declared in its <a href="/
>/en-US/docs/Apps/Manifest" title="/en-US/docs/Apps/Manifest">mani>en-US/docs/Apps/Manifest" title="/en-US/docs/Apps/Manifest">manif
>fest</a>, and determines the list of permissions it may request.>est</a>, and determines the list of permissions it may request.
n115        <strong>Privileged Apps</strong>: These Apps are allowed n115        <strong>Privileged Apps</strong>: These Apps are allowed 
>to request increased increased permissions, and as such Privilege>to request increased permissions, and as such Privileged Apps mus
>d Apps must be verified and signed by a Marketplace>t be verified and signed by a Marketplace
n134      A hosted app consists solely of an <a class="external text"n134      A hosted app consists solely of an <a class="external text"
> href="/en-US/docs/Apps/Manifest" rel="nofollow">application mani> href="/en-US/docs/Apps/Manifest" rel="nofollow">application mani
>fest</a> file on the developer's web server. Often the manifest w>fest</a> file on the developer's web server. Often the manifest w
>ill also point to an appcache manifest which allows an app to be >ill also point to an appcache manifest which allows an app to be 
>cashed for faster startup and to enable offline usage, but otherw>cached for faster startup and to enable offline usage, but otherw
>ise doesn't affect the app at all. From a security point of view,>ise doesn't affect the app at all. From a security point of view,
> hosted apps work very much like normal websites. When a hosted a> hosted apps work very much like normal websites. When a hosted a
>pp is loaded, the URL of the loaded pages are the normal URLs tha>pp is loaded, the URL of the loaded pages are the normal URLs tha
>t those pages have on their web server. So to link to a specific >t those pages have on their web server. So to link to a specific 
>page or resource in the app, the same URL is used as when linking>page or resource in the app, the same URL is used as when linking
> to that page or URL on the website.> to that page or URL on the website.
n151      <li>Packaged Apps: For the Packaged Apps, the main applicatn151      <li>Packaged Apps: For the Packaged Apps, the main applicat
>ion manifest is stored inside the package itself, so that it is s>ion manifest is stored inside the package itself, so that it can 
>igned. There is a second 'mini-manifest' which is used to start t>be signed. There is a second 'mini-manifest' which is used to sta
>he install process. See <a href="/en-US/docs/DOM/Apps.installPack>rt the install and update process. See <a href="/en-US/docs/DOM/A
>age">Installing Packaged Apps</a> and <a href="/en-US/docs/Apps/P>pps.installPackage">Installing Packaged Apps</a> and <a href="/en
>ackaged_apps" title="Apps/Packaged_apps">Packaged apps</a> for mo>-US/docs/Apps/Packaged_apps" title="Apps/Packaged_apps">Packaged 
>re information.>apps</a> for more information.
n155      In order to secure that an app really wants to be installedn155      In order to secure that an app really wants to be installed
> as a web app we have to ensure that it's not possible to trick a> as a web app we have to ensure that it's not possible to trick a
> website into hosting an application manifest. This is done by re> website into hosting an application manifest. This is done by re
>quiring that the manifest is served with a specific mime-type, "a>quiring that the manifest is served with a specific mime-type, "a
>pplication/x-web-app-manifest+json". This restriction is relaxed >pplication/x-web-app-manifest+json". This restriction is relaxed 
>when the manifest app, and thus the app manifest, is same-origin >when the manifest file, and thus the app manifest, is same-origin
>with the page that requested the app to be installed.> with the page that requested the app to be installed.
n167      Applications can be granted additional privileges on top ofn167      Applications may be granted additional privileges on top of
> the ones granted to normal websites. By default an application h> the ones granted to normal websites. By default an application h
>as no permissions on top of the ones normal webpages have. In ord>as no permissions on top of the ones normal webpages have. An app
>er to get additional permissions, the first step is for the app t> may request additional permissions by enumerating the permission
>o enumerate the additional permissions it wants in the applicatio>s in the application manifest. Enumerating a permission does not 
>n manifest.>guarantee that an app will be granted the permission. The runtime
 > may decide to not grant access.
n200      A result of this is that if the user logs in to, for exampln200      A result of this is that if the user logs in to, for exampl
>e, facebook while using App A, this in no way affects App Bs abil>e, Facebook while using App A, this in no way affects App B's abi
>ity to interact with the users account on facebook. The login coo>lity to interact with the user's account on Facebook. The login c
>kie that facebook sets when the user logs in using App A is only >ookie that Facebook sets when the user logs in using App A is onl
>available in App A. If App B open an &lt;iframe&gt; to facebook, >y available in App A. If App B open an &lt;iframe&gt; to Facebook
>the cookie wouldn't be there and so when App B opens facebook, it>, the cookie wouldn't be there and so when App B opens facebook, 
> receives the facebook login page rather than the users account.>it receives the facebook login page rather than the users account
 >.
n209      This applies even for packaged apps (more about them below)n209      This applies even for packaged apps (more about them below)
>. If App A tries to open the packaged App B by using an &lt;ifram>. App A may not open packaged App B&nbsp; using an &lt;iframe&gt;
>e&gt; pointing to the app:// URL of App B, this will simply fail > pointing to the app:// URL of App B under normal circumstances. 
>to load. If this results in a 404, or some other type of error is>Web content also may not access app:// URLs. Attempting to access
> still to be determined, but it will definitely fail to load. And> an app:// URL from web content or without the proper permssio wi
> it will fail in the same way no matter if App B is installed on >ll fail and return an error. An App A can access contents of App 
>the user's device or not, as to make it impossible for App A to d>B if App A has the "webapps-manage" permission which is only avai
>etermine if App B is installed.>lable to certified apps.
t224      There are also large security benefits. A user can safely ut224      There are also large security benefits. A user can safely u
>se his AwesomeSocial app to log in to facebook without having to >se his AwesomeSocial app to log in to Facebook without having to 
>worry that the SketchGame app can mount any types of attack for g>worry that the SketchGame app can mount any types of attack for g
>etting at the users facebook data by exploiting bugs or other sho>etting at the users facebook data by exploiting bugs or other sho
>rtcomings in the facebook website.>rtcomings in the facebook website.

Back to History