-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Apps can use WebViews to bypass web security standards, privacy standards, and user choice.
Submitter(s)
Andy Luhrs
Motivation
Ensure privacy and security considerations and designs of the web are upheld regardless of if a browser or another app is serving the content.
Analysis
WebViews are extremely useful for apps trying to host their own web content in an application like many of the use-cases we've discussed. However, many of these use-cases could also be used in a malicious or user-hostile manner such as clickjacking or tracking. We need to ensure that websites have a mechanism to protect themselves and their users.
There have been three very thorough articles covering the problems in this space:
- @slightlyoff: Hobson's Browser - How Apple, Facebook, and Google Broke the Mobile Browser Market by Silently Undermining User Choice (related slides).
- @KrauseFx: iOS Privacy: Instagram and Facebook can track anything you do on any website in their in-app browser, and Follow-up post iOS Privacy: Announcing InAppBrowser.com - see what JavaScript commands get injected through an in-app browser
- @adrianholovaty: Let websites framebust out of native apps
Additionally, many of the cases in the RFC for the X-Frame-Options
header can be applied to WebViews.
Related W3C deliverables and/or work items
As mentioned above, the X-Frame-Options
header is a solution to a similar problem.
How is the issue solved in the Browser?
There's very few places in a browser similar to this, the closest would be:
- iframes are similar to WebViews conceptually and sites can opt-out of being hosted in an iframe via the
X-Frame-Options
header. - Many browsers have an extension model that allows users that allows 3rd parties access to the user's history and contents of pages. These extensions come with upfront warnings about who is accessing what data to inform users and offer a mitigation.
- Both Android and iOS include browser features for apps to offer WebView-like content that handle many of the concerns outlined here - Chrome Custom Tabs and SFSafariViewController.
What's needed?
We need to propose a method for websites to opt-out of being hosted in a WebView to protect their content and their users. The posts above have a few reasonable starting points, in short:
- Create a new header or meta tag that WebView vendors would read and move the user to an acceptable alternative technology (Chrome Custom Tabs or SFSafariViewController) or their browser of choice. (Article 1 above)
- Standardize and expand WebKit's App-Bound Domains (Article 2 above)
- WebViews should respect the
X-Frame-Options
header (Article 3 above)
This CG should go deeper into these problems and potential solutions.