-/* eslint-disable security/detect-object-injection */
'use strict';
/**
querystring,
};
-const cookieSplitRE = /; */;
+const cookieSplitRE = /\s*;\s*/;
+const headerParseRE = /^(?<name>[^:]+): +(?<value>.*)$/;
+const lineBreakRE = /\r\n|\n|\r/;
+const proxySplitRE = /\s*,\s*/u;
class Dingus {
/**
(this.trustProxy && req?.getHeader(Enum.Header.XRealIP)) ||
(req?.connection?.remoteAddress) ||
'';
- return address.split(/\s*,\s*/u)[0];
+ return address.split(proxySplitRE)[0];
}
// TODO: RFC7239 Forwarded support
const protocol = (this.trustProxy && req?.getHeader(Enum.Header.XForwardedProto)) ||
((req?.connection?.encrypted) ? 'https' : 'http');
- return protocol.split(/\s*,\s*/u)[0];
+ return protocol.split(proxySplitRE)[0];
}
const [ name, value ] = common.splitFirst(cookie, '=', null).map((x) => {
try {
return decodeURIComponent(x.trim());
- } catch (e) {
+ } catch (e) { // eslint-disable-line no-unused-vars
return x;
}
});
return added;
}
- const lineBreakRE = /\r\n|\n|\r/;
const lines = data.toString().split(lineBreakRE);
common.unfoldHeaderLines(lines);
- const headerParseRE = /^(?<name>[^:]+): +(?<value>.*)$/;
lines.forEach((line) => {
if (line) {
const result = headerParseRE.exec(line);
if (encoding === Enum.EncodingType.Identity) {
break;
}
- const suffix = Enum.EncodingTypeSuffix[encoding];
+ const suffix = Enum.EncodingTypeSuffix[encoding]; // eslint-disable-line security/detect-object-injection
if (!suffix) {
this.logger.error(_scope, 'supported encoding missing mapped suffix', { ctx, encoding });
continue;