GitHub user ooo2003003v2 edited a comment on the discussion: Does allow list 
requires importing cordova.js to work correctly?

> > I wonder if I need to import cordova.js into my project for the allow 
> > list/whitelist to work correctly?
> 
> I don't believe so because the allow list plugin does not have a JS interface 
> and is something that I believe is loaded on load, rather than initialised in 
> the JS runtime. Any plugins that offer a JS API does need `cordova.js` since 
> it is also responsible for loading in the plugin JS modules as well as 
> providing the native bridge to make native API calls.
> 
> But loading your web app remotely is also not a supported configuration and 
> is not something really tested for. The web app should be bundled with the 
> binary.
> 
> > Another question is that I saw that the _system target"window.open(url, 
> > '_system')" only mentioned in the cordova-plugin-inappbrowser.
> 
> `_system` is a in-app browser plugin specific concept. If the plugin is not 
> installed (also means you need the binary bundled `cordova.js`), then you'll 
> be using the browser-native 
> [window.open](https://developer.mozilla.org/en-US/docs/Web/API/Window/open) 
> which does not have a `_system` keyword, and thus will treat `_system` has a 
> context name instead.
> 
> Also note that by default the in app browser plugin doesn't clobber 
> `window.open`. You'd need to explicitly clobber (if you desire to force all 
> `window.open` calls to use the plugin by reassigning it to the plugin method. 
> See 
> https://github.com/apache/cordova-plugin-inappbrowser?tab=readme-ov-file#windowopen
> 
> To re-iterate, If you're loading your web app remotely, then using 
> `cordova.js` to use native device APIs can be considered breaking user 
> agreements and can also be considered a RCE (Remote Code Execution) 
> vulnerability. This vulnerability may exists even if you're remotely hosted 
> code does not make use of `cordova.js` but `cordova.js` is still available to 
> be loaded into your web app environment.
> 
> So if you plan to use Cordova to provide a remote hosted application that 
> uses standard browser features, then consider [Progressive Web 
> App](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) 
> deployment instead. It will be far more secure.
> 
> If you're using Cordova because you need access to native device APIs, then 
> you should architect your application to be able to run offline locally on 
> device.

I see. Thx for anwsering my questions. I'm still a bit confused, so it's 
incorrect that setting the `content` prop in the xml config to an extenal site? 
And, in theory, if I move all the plu-in js files and `cordova.js` to the 
extenal site folder, will the allow list should works properly? Or the list 
only works if the site stores inside the www folder? 

GitHub link: 
https://github.com/apache/cordova/discussions/512#discussioncomment-11375278

----
This is an automatically sent email for issues@cordova.apache.org.
To unsubscribe, please send an email to: issues-unsubscr...@cordova.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to