Skip to content

Commit 2d1eefa

Browse files
mcollinaBethGriggs
authored andcommittedOct 11, 2021
http: add regression test for smuggling content length
PR-URL: nodejs-private/node-private#284 Reviewed-By: Akshay K <iit.akshay@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com>
1 parent 45d419a commit 2d1eefa

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'use strict';
2+
3+
const common = require('../common');
4+
const http = require('http');
5+
const net = require('net');
6+
const assert = require('assert');
7+
8+
// Verify that a request with a space before the content length will result
9+
// in a 400 Bad Request.
10+
11+
const server = http.createServer(common.mustNotCall());
12+
13+
server.listen(0, common.mustCall(start));
14+
15+
function start() {
16+
const sock = net.connect(server.address().port);
17+
18+
sock.write('GET / HTTP/1.1\r\nHost: localhost:5000\r\n' +
19+
'Content-Length : 5\r\n\r\nhello');
20+
21+
let body = '';
22+
sock.setEncoding('utf8');
23+
sock.on('data', (chunk) => {
24+
body += chunk;
25+
});
26+
sock.on('end', common.mustCall(function() {
27+
assert.strictEqual(body, 'HTTP/1.1 400 Bad Request\r\n' +
28+
'Connection: close\r\n\r\n');
29+
server.close();
30+
}));
31+
}

0 commit comments

Comments
 (0)
Please sign in to comment.