Return-Path: X-Original-To: apmail-cordova-dev-archive@www.apache.org Delivered-To: apmail-cordova-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C600B177BB for ; Thu, 5 Mar 2015 02:05:07 +0000 (UTC) Received: (qmail 88780 invoked by uid 500); 5 Mar 2015 02:04:45 -0000 Delivered-To: apmail-cordova-dev-archive@cordova.apache.org Received: (qmail 88747 invoked by uid 500); 5 Mar 2015 02:04:45 -0000 Mailing-List: contact dev-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cordova.apache.org Delivered-To: mailing list dev@cordova.apache.org Received: (qmail 88657 invoked by uid 99); 5 Mar 2015 02:04:40 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Mar 2015 02:04:40 +0000 X-ASF-Spam-Status: No, hits=2.6 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,TRACKER_ID X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of agrieve@google.com designates 209.85.223.170 as permitted sender) Received: from [209.85.223.170] (HELO mail-ie0-f170.google.com) (209.85.223.170) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Mar 2015 02:04:15 +0000 Received: by iery20 with SMTP id y20so19172533ier.13 for ; Wed, 04 Mar 2015 18:03:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=Jxb24WbZqVpCJO9TWV2ft4vn9Sd3FNdJ1Ld+iuhLMRg=; b=kHmW/4Abktr8ev4L5NsAtKJ/6lTv5pPxqur2w6NqmN1V6ufaWns6UHKsU+rInEZgH7 3ZMASV8vWcveKNI9elzWUnUGEYgS5pBjR6W6r9U6hdV/J7QR+4/Jz6z8syIeSNAxlFn9 GPEnOWVyma429cajQC4PDz3dio6cWlLS1mpbnMJmFh1c8nJ0suuEJA2R3pNckwfLABMK UGXlYYeXBCQgP2jS/hJP2G/gZ2vePqw3D+WpUqxNyQpeQnbnfxam9nsZWmTr/vXBcc9P Ag3ZSu9gTnHcxRUJAj61beI7jTy/iCIfy6/vs9Ar/mX9h1aKQLOtYBFiHEM0LMTdMby7 F4Tg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=Jxb24WbZqVpCJO9TWV2ft4vn9Sd3FNdJ1Ld+iuhLMRg=; b=PjEQ8vP0CoH/sxKMzKq/jBCS88HQWzRO6O0cdaM7BByXyex64HLvQeh2syQyvPfnof SiU9NSZ7OK277xcoCpHdoih4u9dMAd9Wosmfl/Qp0DYux5+dLw/O8zVjO18zhWbq3/8O 0WZebSZYdPgRG3eKZiT74AUQO0bKJkCrM13VM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-type; bh=Jxb24WbZqVpCJO9TWV2ft4vn9Sd3FNdJ1Ld+iuhLMRg=; b=HjEKOmCpt6cQYXtUdcDPC6SAJGGBIaWDN0xczcyXoEybbwCkOmYiNUtuvw00vi1U7m 21e2V8MvKi3GpcVcKeqtS2KqdFsr33l+8pVxKnl7sM3t22wdWGfqg1G5i5Q1ycMLq84x 6Py/I2mYCjqzXLFhG0aiBQT9AoPJtjG4DQx7jIHt8AhtSDJCRa+u36TfR2cPQ1Bm4s2y VdaRP9/cSmXq4GX4g8C0yT9PTKWutiVjtfokBzHXQXiOPrE58620wmaLHA7PWt+4ir7C d4zIqP1SANFShlIbOf+Pw/gZUbFbZbQ2TLY3U2WftHxTxy5sDpiY2XLAGDVrpJpFGvVp w1gQ== X-Gm-Message-State: ALoCoQkTBERYSG19tfT72de53D/5D7UPaOnQ3CIs/S+BbH7XWYpHLyobWHTw592FSLcPM+NxxFWL X-Received: by 10.50.66.243 with SMTP id i19mr43662542igt.7.1425521007971; Wed, 04 Mar 2015 18:03:27 -0800 (PST) MIME-Version: 1.0 Sender: agrieve@google.com Received: by 10.36.3.136 with HTTP; Wed, 4 Mar 2015 18:03:07 -0800 (PST) In-Reply-To: References: From: Andrew Grieve Date: Wed, 4 Mar 2015 21:03:07 -0500 X-Google-Sender-Auth: hepgXDP_irGs5nLc98BOlgx0xNM Message-ID: Subject: Re: Android's new Whitelist Plugins To: Andrew Grieve Cc: dev Content-Type: multipart/alternative; boundary=047d7bdc11d64ceb68051080f9cd X-Virus-Checked: Checked by ClamAV on apache.org --047d7bdc11d64ceb68051080f9cd Content-Type: text/plain; charset=UTF-8 No comments about the names yet, but I'm now leaning towards: cordova-plugin-legacy-whitelist and cordova-plugin-whitelist as the two new git repos to create (rather than "url-policy") On Wed, Mar 4, 2015 at 8:49 PM, Andrew Grieve wrote: > I think how Cordova works right now was the best way. Have access blocked > by default, but have a in the default template. It > makes the setting visible, while still working out-of-the-box. > > If we turned on requests when no whitelist plugin is installed, then > existing apps that have tags will have their whitelist removed > with 4.0.0 and not know it. If someone updates and their app can't hit the > network anymore, then I think Stack Overflow will tell them why pretty > quickly. We should also be very clear in the release notes and upgrade > guide. > > > > > On Wed, Mar 4, 2015 at 7:54 PM, Nikhil Khandelwal > wrote: > >> I like Ian's proposal of blocking network access only when a whitelist >> plugin is added to do so and is choosing to override the default behavior. >> >> Scanning config.xml on upgrade might be a good way to warn devs to refer >> them to use this plugin. These changes should also be documented in the >> migration guide from Android 3.x to 4.0. >> >> Thanks, >> Nikhil >> >> >> -----Original Message----- >> From: Jesse [mailto:purplecabbage@gmail.com] >> Sent: Wednesday, March 4, 2015 11:05 AM >> To: dev@cordova.apache.org >> Subject: Re: Android's new Whitelist Plugins >> >> I like the defaults as discussed, regardless of how they are achieved. >> ie. network yes, intents no >> This is similar to how a plain webview works if you add it to a native >> app on ios or android, at least the network part, not sure what the default >> intent handling is. >> >> Are there portions of this functionality that make more sense as part of >> the platform native code? To me a plugin that is installed by default is >> just modular platform code. Is there ever a reason to NOT want this plugin, >> versus just opening up access? >> >> >> >> >> >> >> >> >> >> @purplecabbage >> risingj.com >> >> On Wed, Mar 4, 2015 at 9:37 AM, Michal Mocny wrote: >> >> > I've been working on adding support to just install the whitelist >> > plugin by default, and to add the to the default >> app. >> > >> > Is that sufficient? I think we may still need to do what Ian suggests >> > and prompt on upgrade (or prepare)? >> > >> > For downstreams, especially IDE based ones, they will need to make >> > sure the plugin is added by default however they do that. >> > >> > On Wed, Mar 4, 2015 at 12:06 PM, Ian Clelland >> > wrote: >> > >> > > On Tue, Mar 3, 2015 at 8:20 PM, Nikhil Khandelwal < >> > nikhilkh@microsoft.com> >> > > wrote: >> > > >> > > > Here are my thoughts on the default behavior: >> > > > - navigation should be disabled. >> > > > - XHR & network request should be enabled. >> > > > >> > > >> > > And application launch through intent URLs should also be disabled. >> > > (IMO) >> > > >> > > That's not a bad default -- it enables CSP usage by default, which I >> > think >> > > is good. It also (I think) means we're giving up on suggesting that >> > network >> > > requests can be completely blocked by default, because that's >> > > definitely not the case on Android. >> > > >> > > We can implement this within the new framework: there is the idea of >> > > a 'default policy' that only comes into effect when no plugins take >> > > responsibility for the whitelist. As soon as any plugin, though, >> > > handles the shouldAllowRequest() call, for instance, the default >> > > policy is no longer in effect, and it is a true whitelist >> > > (block-by-default) >> > > >> > > My biggest concern with this is that developers are going to blindly >> > update >> > > to Cordova 4.0.0, and when their app *just works*, they are not >> > > going to realize that they are actually less secure than before. >> > > (Without a >> > plugin, >> > > we've opened up all network access) >> > > >> > > Idea -- maybe we can scan config.xml -- at run time, or on prepare, >> > > or on upgrade -- and if we see any access tag other than > > > origin="*"> we can display a loud message, suggesting strongly that >> > > they install an appropriate plugin. >> > > >> > > Ian >> > > >> > > >> > > > >> > > > The plugin name is fine. >> > > > >> > > > I'm not convinced about a user having to add this plugin to enable >> > > network >> > > > requests for Android/iOS. This default behavior should work with >> > > > the platform and should not require a plugin. This inhibits users >> > > > from >> > > getting >> > > > the ground running on a Cordova app. It breaks existing templates >> > > > in >> > IDEs >> > > > and other downstream CLIs as well - as all of them need to include >> > > > this plugin to have any network access work. >> > > > >> > > > Thanks, >> > > > Nikhil >> > > > >> > > > >> > > > -----Original Message----- >> > > > From: mmocny@google.com [mailto:mmocny@google.com] On Behalf Of >> > > > Michal Mocny >> > > > Sent: Tuesday, March 3, 2015 11:22 AM >> > > > To: dev >> > > > Subject: Re: Android's new Whitelist Plugins >> > > > >> > > > I've filed a JIRA issue with my thoughts on how to approach this: >> > > > https://issues.apache.org/jira/browse/CB-8597 >> > > > >> > > > On Tue, Mar 3, 2015 at 1:02 PM, Andrew Grieve >> > > > >> > > > wrote: >> > > > >> > > > > Like your ideas a lot. Updating the project template makes a lot >> > > > > of >> > > > sense. >> > > > > >> > > > > Tried to make it clear in the README, so if any part was not >> > > > > clear please fix it. But, the CSP tag is the more important bit, >> > > > > since can't actually block all requests. The only >> > > > > reason to even leave in there is to support pre-kitkat >> > > > > webviews, where no CSP support exists. CSP is also used to set a >> > > > > navigation whitelist >> > for >> > > > > subframes, which the native side is not able to do. >> > > > > >> > > > > On Tue, Mar 3, 2015 at 11:22 AM, Michal Mocny >> > > > > >> > > > wrote: >> > > > > >> > > > > > My thoughts: >> > > > > > >> > > > > > - The split between , , and >> > : >> > > > > Like >> > > > > > it a lot. >> > > > > > - I think the defaults *for the plugin* are very reasonable. >> > > > > > However, we may want to provide a default set of tags for the >> > > > > > hello world app. A >> > > > > year >> > > > > > or so ago we added a default access * whitelist and I think >> > > > > > maybe >> > we >> > > > > should >> > > > > > continue that. (on the other hand, I've gotten used to >> > > > > > explicitly whitelisting every url as part of chrome packaged >> > > > > > app development and its not so bad). >> > > > > > - Additionally, that means this plugin should be installed >> > > > > > by >> > > > default. >> > > > > > As we discussed this morning, with the new plugin --save >> > > > > > functionality we could just add this to the helloworld >> > > > > > config.xml, >> > I >> > > > think! >> > > > > > - Do you really need a CSP meta tag *and* declarations? >> > > > Thats >> > > > > > what the README.md implies, but I would assume CSP trumps? >> > > > > > >> > > > > > -Michal >> > > > > > >> > > > > > On Mon, Mar 2, 2015 at 9:38 PM, Andrew Grieve < >> > agrieve@chromium.org> >> > > > > > wrote: >> > > > > > >> > > > > > > I've tried to explain it in the plugin's readme: >> > > > > > > >> > > > > > > https://github.com/apache/cordova-plugins/tree/master/url-po >> > > > > > > licy >> > > > > > > >> > > > > > > Some points for discussion: >> > > > > > > - What should the default behaviour be for the three >> > > > > > > whitelists (what should happen if not whitelist plugin is >> installed). >> > > > > > > - right now it can't open external URLs >> > > > > > > - and can't do XHRs to http(s) >> > > > > > > - Is the plugin name decent ("url-policy"). We should make a >> > > > > > > dedicated >> > > > > > git >> > > > > > > repo for it (as well as for legacy-whitelist plugin) >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org >> For additional commands, e-mail: dev-help@cordova.apache.org >> > > --047d7bdc11d64ceb68051080f9cd--