mirror of
https://github.com/nodejs/node.git
synced 2025-05-04 16:26:26 +00:00

This commit changes node's handling of two-byte characters in the path component of an http URL. Previously, node would just strip the higher byte when generating the request. So this code: ``` http.request({host: "example.com", port: "80", "/N"}) ``` would request `http://example.com/.` (`.` is the character for the byte `0x2e`). This is not useful and can in some cases lead to filter evasion. With this change, the code generates `ERR_UNESCAPED_CHARACTERS`, just like space and control characters already did. PR-URL: https://github.com/nodejs/node/pull/16237 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Timothy Gu <timothygu99@gmail.com>
13 lines
235 B
JavaScript
13 lines
235 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
const http = require('http');
|
|
|
|
common.expectsError(() => {
|
|
http.request({
|
|
path: '/thisisinvalid\uffe2'
|
|
}).end();
|
|
}, {
|
|
code: 'ERR_UNESCAPED_CHARACTERS',
|
|
type: TypeError
|
|
});
|