X-Git-Url: https://git.pterodactylus.net/?p=fms.git;a=blobdiff_plain;f=src%2Fhttp%2Fpages%2Fshowcaptchapage.cpp;h=46a4d3d1b56c3dd1529d22804b3bd7060b33502f;hp=abd65b34928a8c00f74c6e6c12241ac5e411bfb1;hb=f60495a029c54358f82956482fe203fe2b7b5b23;hpb=b9c3763a932cebaa015a27fe111017f6f34dfbaa diff --git a/src/http/pages/showcaptchapage.cpp b/src/http/pages/showcaptchapage.cpp index abd65b3..46a4d3d 100644 --- a/src/http/pages/showcaptchapage.cpp +++ b/src/http/pages/showcaptchapage.cpp @@ -11,7 +11,7 @@ const std::string ShowCaptchaPage::GeneratePage(const std::string &method, const std::string content="HTTP/1.1 200 OK\r\n"; if(queryvars.find("UUID")!=queryvars.end()) { - SQLite3DB::Statement st=m_db->Prepare("SELECT MimeType,PuzzleData FROM tblIntroductionPuzzleRequests WHERE UUID=?;"); + SQLite3DB::Statement st=m_db->Prepare("SELECT MimeType,PuzzleData FROM tblIntroductionPuzzleRequests WHERE Type='captcha' AND UUID=?;"); st.Bind(0,(*queryvars.find("UUID")).second); st.Step(); @@ -27,9 +27,13 @@ const std::string ShowCaptchaPage::GeneratePage(const std::string &method, const Base64::Decode(b64data,data); StringFunctions::Convert(data.size(),lenstr); - content+="Content-Type: "+mime+"\r\n"; - content+="Content-Length: "+lenstr+"\r\n\r\n"; - content+=std::string(data.begin(),data.end()); + // mime type should be short and have a / in it - otherwise skip + if(mime.size()<50 && mime.find("/")!=std::string::npos) + { + content+="Content-Type: "+mime+"\r\n"; + content+="Content-Length: "+lenstr+"\r\n\r\n"; + content+=std::string(data.begin(),data.end()); + } } } return content;