errbotio / errbot

Errbot is a chatbot, a daemon that connects to your favorite chat service and bring your tools and some fun into the conversation.
http://errbot.io
GNU General Public License v3.0
3.13k stars 615 forks source link

errbot, or Slack, is URI encoding special characters like "greater than" #1246

Open lingfish opened 6 years ago

lingfish commented 6 years ago

In order to let us help you better, please fill out the following fields as best you can:

I am...

I am running...

Issue description

When using the configuration system, it seems that data being stored is being URI encoded by either the bot, or Slack (eg "greater than" > is being stored as ">".

Steps to reproduce

Setup a basic config dict, and then attempt to store the string "123>456".

When querying that back, it appears to be right in the Slack client, but when I use that field for say, a password, and send that to an external API, it sends > instead.

You can see this with a quick self.log call within plugin code.

lingfish commented 6 years ago

I just found #964 which seems to be related.

I think the only way around this until devs have a better idea, is for the user to have to supply (for example) a base64 encoded string, and unwrap it in the plugin.

As I think of that suggestion a little more, even the trailing equals may still get mangled :(