mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 04:04:16 +00:00
* HTTPProxy.cpp : add SanitizeHTTPRequest()
This commit is contained in:
parent
9fd78b1eb1
commit
642b01bf0d
@ -52,6 +52,7 @@ namespace proxy {
|
|||||||
void RedirectToJumpService(std::string & host);
|
void RedirectToJumpService(std::string & host);
|
||||||
bool ValidateHTTPRequest();
|
bool ValidateHTTPRequest();
|
||||||
bool ExtractAddressHelper(i2p::http::URL & url, std::string & b64);
|
bool ExtractAddressHelper(i2p::http::URL & url, std::string & b64);
|
||||||
|
void SanitizeHTTPRequest(i2p::http::HTTPReq & req);
|
||||||
bool CreateHTTPRequest(uint8_t *http_buff, std::size_t len);
|
bool CreateHTTPRequest(uint8_t *http_buff, std::size_t len);
|
||||||
void SentHTTPFailed(const boost::system::error_code & ecode);
|
void SentHTTPFailed(const boost::system::error_code & ecode);
|
||||||
void HandleStreamRequestComplete (std::shared_ptr<i2p::stream::Stream> stream);
|
void HandleStreamRequestComplete (std::shared_ptr<i2p::stream::Stream> stream);
|
||||||
@ -171,6 +172,31 @@ namespace proxy {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HTTPReqHandler::SanitizeHTTPRequest(i2p::http::HTTPReq & req)
|
||||||
|
{
|
||||||
|
/* drop common headers */
|
||||||
|
req.del_header("Referer");
|
||||||
|
req.del_header("Via");
|
||||||
|
req.del_header("Forwarded");
|
||||||
|
/* drop proxy-disclosing headers */
|
||||||
|
std::vector<std::string> toErase;
|
||||||
|
for (auto it : req.headers) {
|
||||||
|
if (it.first.compare(0, 12, "X-Forwarded-") == 0) {
|
||||||
|
toErase.push_back(it.first);
|
||||||
|
} else if (it.first.compare(0, 6, "Proxy-") == 0) {
|
||||||
|
toErase.push_back(it.first);
|
||||||
|
} else {
|
||||||
|
/* allow */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (auto header : toErase) {
|
||||||
|
req.headers.erase(header);
|
||||||
|
}
|
||||||
|
/* replace headers */
|
||||||
|
req.add_header("Connection", "close", true); /* keep-alive conns not supported yet */
|
||||||
|
req.add_header("User-Agent", "MYOB/6.66 (AN/ON)", true); /* privacy */
|
||||||
|
}
|
||||||
|
|
||||||
bool HTTPReqHandler::CreateHTTPRequest(uint8_t *http_buff, std::size_t len)
|
bool HTTPReqHandler::CreateHTTPRequest(uint8_t *http_buff, std::size_t len)
|
||||||
{
|
{
|
||||||
std::string b64;
|
std::string b64;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user