Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mini Apps #183

Closed
xfq opened this issue Jun 14, 2019 · 21 comments
Closed

Mini Apps #183

xfq opened this issue Jun 14, 2019 · 21 comments
Assignees
Labels
Accessibility review completed Accessibility Core Horizontal review requested Internationalization review completed privacy-needs-resolution Issue the Privacy Group has raised and looks for a response on. security-needs-resolution Issue the security Group has raised and looks for a response on.

Comments

@xfq
Copy link
Member

xfq commented Jun 14, 2019

MiniApps are small, install-free, fast-loading programs which typically are run inside other, larger native applications. They use a mixture of native and Web capabilities. Currently, these are mostly used in China. Examples:

Draft WG charter: https://w3c.github.io/miniapp/charters/wg-2020.html

@xfq xfq added the Core label Jun 14, 2019
@xfq
Copy link
Member Author

xfq commented Jun 17, 2019

We should also figure out the security story for Mini Programs & Quick Apps.

@svgeesus svgeesus self-assigned this Jun 17, 2019
@xfq
Copy link
Member Author

xfq commented Jul 24, 2019

360 Mini Programs is the first implementation that supports desktop.

@xfq xfq changed the title Mini Programs & Quick Apps Mini Apps Sep 23, 2019
@tidoust
Copy link
Member

tidoust commented Sep 26, 2019

The MiniApps Ecosystem Community Group was created following discussions at TPAC, to incubate work on MiniApps and serve as a base for analysis and proposals of specific work items.

@wseltzer wseltzer moved this from Exploration to Incubation in Strategy Team's Incubation Pipeline (Funnel) Mar 20, 2020
@xfq
Copy link
Member Author

xfq commented May 26, 2020

There are discussions about creating a working group for MiniApps.

Here's the draft WG charter: https://w3c.github.io/miniapp/charters/wg-2020.html

Issues can be filed in https://github.com/w3c/miniapp/issues

@svgeesus
Copy link
Contributor

Te mention of mapping makes me wonder whether the work of the Maps For HTML Community Group should be examined.

The different requirements for mas in browsers and for maps in MiniApp could also be stressed in the charter (if there are any).

@xfq
Copy link
Member Author

xfq commented May 26, 2020

Agreed. Filed an issue here: w3c/miniapp#74

@xfq
Copy link
Member Author

xfq commented Jun 15, 2020

Related standardization effort in IEEE SA: https://standards.ieee.org/project/2858.html

@samuelweiler
Copy link
Member

Discussed in Strategy meeting 26 May 2020: https://www.w3.org/2020/05/26-strat-minutes.html#item01

Some follow-up in these issues:
w3c/miniapp#75
w3c/miniapp#76
w3c/miniapp#77
w3c/miniapp#79

@samuelweiler
Copy link
Member

On the security side, I'm concerned that miniapp environments (superapps) will (and do) bypass many of the protections we've already build in browsers. Merely attesting to the origin of code packages is not enough - I'm interested in how they handle isolation and injection protection - and I'm leery of reinventing something that has already had so much effort put into it. In summary, there needs to be a stronger security story here, particularly to justify the bypassing of browser protections.

Similarly, I'm concerned that duplicating APIs (e.g. device and sensor APIs) in these environments will bypass protections - particularly for fingerprinting - that we have worked hard to get into the our web APIs. Is there a way to start with the baseline of the web APIs, with the protections we've already specified for those?

See also the open issue re: operational considerations: w3c/miniapp#76

@samuelweiler samuelweiler added privacy-needs-resolution Issue the Privacy Group has raised and looks for a response on. security-needs-resolution Issue the security Group has raised and looks for a response on. labels Oct 1, 2020
@xfq
Copy link
Member Author

xfq commented Oct 2, 2020

Merely attesting to the origin of code packages is not enough - I'm interested in how they handle isolation and injection protection - and I'm leery of reinventing something that has already had so much effort put into it. In summary, there needs to be a stronger security story here, particularly to justify the bypassing of browser protections.

I am no security expert, but here's my preliminary analysis on isolation and injection protection:

  • Since most MiniApp implementations disallow dynamic code loading like eval and new Function, XSS is very difficult;
  • MiniApps usually have a domain name safelist, to permit scripts contained in a MiniApp to access data from a URL only when the domain name is in the safelist;
  • Since MiniApps restrict the use of cookies, CSRF attacks is harder in MiniApps than normal web apps.

I think we should open a separate issue in https://github.com/w3c/miniapp/issues to discuss this issue.

Similarly, I'm concerned that duplicating APIs (e.g. device and sensor APIs) in these environments will bypass protections - particularly for fingerprinting - that we have worked hard to get into the our web APIs. Is there a way to start with the baseline of the web APIs, with the protections we've already specified for those?

This is tracked in w3c/miniapp#79

See also the open issue re: operational considerations: w3c/miniapp#76

Thanks for opening this issue. I'll discuss it with the CG.

@himorin
Copy link

himorin commented Oct 8, 2020

no comment/suggestion pointed from i18n.

@michael-n-cooper
Copy link
Member

APA asks @ruoxiran to help review this for accessibility considerations.

@chaals
Copy link
Contributor

chaals commented Oct 31, 2020

Isn't this in the chartering phase per https://www.w3.org/mid/8323ed3a-7f77-d6dc-b779-4f2404addc6e@w3.org (in the "funnel")

@xfq xfq moved this from Incubation to Chartering in Strategy Team's Incubation Pipeline (Funnel) Oct 31, 2020
@xfq
Copy link
Member Author

xfq commented Oct 31, 2020

I agree. I've moved it to "Chartering".

@brewerj brewerj added the a11y-needs-resolution Issue the Accessibility Group has raised and looks for a response on. label Nov 4, 2020
@brewerj brewerj self-assigned this Nov 4, 2020
@brewerj
Copy link

brewerj commented Nov 4, 2020

Accessibility comment is here: w3c/miniapp#139 (comment)

@brewerj brewerj added Accessibility Accessibility review completed and removed a11y-needs-resolution Issue the Accessibility Group has raised and looks for a response on. labels Nov 4, 2020
@wseltzer
Copy link
Member

wseltzer commented Dec 8, 2020

@samuelweiler
Copy link
Member

Results (limited visibility): https://www.w3.org/2002/09/wbs/33280/miniapps-charter-2020/results

@xfq
Copy link
Member Author

xfq commented Jan 20, 2021

WG formed: https://www.w3.org/blog/2021/01/w3c-launches-the-miniapps-working-group/

@wseltzer wseltzer moved this from Chartering to Strategy Work Concluded in Strategy Team's Incubation Pipeline (Funnel) Jan 20, 2021
@svgeesus
Copy link
Contributor

I see that Apple iMessage (a native application) allows Apps to be hosted inside it, and wonder if that would count as Mini Apps?

https://developer.apple.com/design/human-interface-guidelines/ios/extensions/messaging/

@xfq
Copy link
Member Author

xfq commented May 19, 2021

@svgeesus iMessage can host other applications indeed, but it uses the Messages framework instead of Web technologies, so I think it depends on how we define MiniApps.

The current definition in the MiniApps WG is in the white paper and the MiniApp Packaging spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Accessibility review completed Accessibility Core Horizontal review requested Internationalization review completed privacy-needs-resolution Issue the Privacy Group has raised and looks for a response on. security-needs-resolution Issue the security Group has raised and looks for a response on.
Projects
Development

No branches or pull requests

9 participants