diff --git a/lib/node/index.js b/lib/node/index.js index 51f75551f..fd26e49cf 100644 --- a/lib/node/index.js +++ b/lib/node/index.js @@ -417,13 +417,13 @@ Request.prototype._redirect = function(res){ let headers = this.req._headers; - const shouldStripCookie = parse(url).host !== parse(this.url).host; + const changesOrigin = parse(url).host !== parse(this.url).host; // implementation of 302 following defacto standard if (res.statusCode == 301 || res.statusCode == 302){ // strip Content-* related fields // in case of POST etc - headers = utils.cleanHeader(this.req._headers, shouldStripCookie); + headers = utils.cleanHeader(this.req._headers, changesOrigin); // force GET this.method = 'HEAD' == this.method @@ -437,7 +437,7 @@ Request.prototype._redirect = function(res){ if (res.statusCode == 303) { // strip Content-* related fields // in case of POST etc - headers = utils.cleanHeader(this.req._headers, shouldStripCookie); + headers = utils.cleanHeader(this.req._headers, changesOrigin); // force method this.method = 'GET'; diff --git a/lib/utils.js b/lib/utils.js index ce8be46c9..a7e1af1c4 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -57,12 +57,14 @@ exports.parseLinks = function(str){ * @api private */ -exports.cleanHeader = function(header, shouldStripCookie){ +exports.cleanHeader = function(header, changesOrigin){ delete header['content-type']; delete header['content-length']; delete header['transfer-encoding']; delete header['host']; - if (shouldStripCookie) { + // secuirty + if (changesOrigin) { + delete header['authorization']; delete header['cookie']; } return header;