textpattern / pophelp

Textpattern CMS help files.
https://textpattern.com
GNU General Public License v2.0
8 stars 6 forks source link

4.9.x pophelp edits #55

Open Bloke opened 4 years ago

Bloke commented 4 years ago

The following pophelps will need revising or tweaking:

colak commented 4 years ago

install_plugin: From 4.9.0, this text will need to be revamped to include the fact that URLs may be pasted here to load plugins from remote repositories as long as the host permits it. Also mention that all plugins will be passed through the verify step.

Will that be safe? Are we opening a Pandora's box here?

Bloke commented 4 years ago

What do you mean by safe? You click Install and it shows you on the verify step what is going to be installed. What the code is, what Textpack strings, the help and any additional files bundled (if it's a zip). If you don't like it, you click Cancel.

If the file isn't of a format we expect, we bail out. If the file contains dodgy content and the admin clicks Install, caveat emptor.

colak commented 4 years ago

Up to now, we have been downloading and installing plugins from trusted sources. I actually think of this as an excellent idea if the remote depository is https://plugins.textpattern.com/ where the plugins can be curated and tested by the community.

Remote depositories beyond the community's control can be anywhere and the transfer could be intercepted. I realise that this can happen anyway but it's just adding another safety concern.

Bloke commented 4 years ago

True but even if the endpoint is plugins.textpattern.com/plugins/smd_query.zip then it could still be 'intercepted' via man-in-the-middle or a rogue bit of JS loaded by hacking core files.

But it doesn't matter if it's intercepted and delivers the wrong content, because:

The additional thing we have as a safety net is that no plugins run on the Plugins panel. So you can't have a rogue plugin running that could intercept a click or tamper with a download. Only physical access to Txp's server filesystem AND regenerating a new token in the database will make untrusted code be installed.