diff --git a/request.cpp b/request.cpp index 5ea0527..76c988e 100644 --- a/request.cpp +++ b/request.cpp @@ -86,7 +86,15 @@ void Request::initCookies(const std::string &cookiestr) std::string Request::get(const std::string &key) const { - return utils::getKeyOrEmpty(this->getVars, key); + std::string value = utils::getKeyOrEmpty(this->getVars, key); + /* In general all our expected GET values are printable and, for now, ascii. + * If not, it's not a normal request. So just return an empty string then. + * Exceptions are probably a bit too much */ + if(!utils::is_printable_ascii(value)) + { + return ""; + } + return value; } std::string Request::post(const std::string &key) const @@ -105,23 +113,18 @@ std::string Request::param(const std::string &key) const } std::string Request::cookie(const std::string &key) const { + std::string value; for(const Cookie &c : cookies) { if(c.key == key) { - return c.value; + value = c.value; + break; } } - + if(utils::is_printable_ascii(value)) + { + return value; + } return ""; } - -std::vector Request::allGet(const std::string &key) -{ - return utils::getAll(this->getVars, key); -} - -std::vector Request::allPost(const std::string &key) -{ - return utils::getAll(this->postVars, key); -} diff --git a/request.h b/request.h index d107325..6d9b46e 100644 --- a/request.h +++ b/request.h @@ -34,9 +34,6 @@ class Request std::string post(const std::string &key) const; std::string cookie(const std::string &key) const; std::string param(const std::string &key) const; - std::vector allGet(const std::string &key); - std::vector allPost(const std::string &key); - const std::vector &getCookies() const { return this->cookies;