]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
remotebackend: http connector - Properly escape parameters
authorAki Tuomi <cmouse@cmouse.fi>
Wed, 13 Mar 2019 18:06:09 +0000 (20:06 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 15 Mar 2019 10:02:15 +0000 (11:02 +0100)
(cherry picked from commit 6de3be832cbab7805ab5215dce503d11d8769414)
(cherry picked from commit 4f3c2b32894bcc5fb394c32d23a58f4ea2ec025f)

modules/remotebackend/httpconnector.cc

index a154da134d516a9dcef568d378d1d7af0d6ece2a..7974c557c619fcc0679e4263e0bd0ae04d74599f 100644 (file)
@@ -71,7 +71,7 @@ HTTPConnector::~HTTPConnector() {
 void HTTPConnector::addUrlComponent(const Json &parameters, const string& element, std::stringstream& ss) {
     std::string sparam;
     if (parameters[element] != Json())
-       ss << "/" << asString(parameters[element]);
+       ss << "/" << YaHTTP::Utility::encodeURL(asString(parameters[element]), false);
 }
 
 std::string HTTPConnector::buildMemberListArgs(std::string prefix, const Json& args) {
@@ -81,9 +81,9 @@ std::string HTTPConnector::buildMemberListArgs(std::string prefix, const Json& a
         if (pair.second.is_bool()) {
           stream << (pair.second.bool_value()?"1":"0");
         } else if (pair.second.is_null()) {
-          stream << prefix << "[" << pair.first << "]=";
+          stream << prefix << "[" << YaHTTP::Utility::encodeURL(pair.first, false) << "]=";
         } else {
-          stream << prefix << "[" << pair.first << "]=" << this->asString(pair.second);
+          stream << prefix << "[" << YaHTTP::Utility::encodeURL(pair.first, false) << "]=" << YaHTTP::Utility::encodeURL(this->asString(pair.second), false);
         }
         stream << "&";
     }