mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
http: add regression test for smuggling content length
PR-URL: https://github.com/nodejs-private/node-private/pull/284 Reviewed-By: Akshay K <iit.akshay@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com>
This commit is contained in:
committed by
Beth Griggs
parent
2978b5a4a3
commit
7beff4de6f
31
test/parallel/test-http-request-smuggling-content-length.js
Normal file
31
test/parallel/test-http-request-smuggling-content-length.js
Normal file
@@ -0,0 +1,31 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
const http = require('http');
|
||||
const net = require('net');
|
||||
const assert = require('assert');
|
||||
|
||||
// Verify that a request with a space before the content length will result
|
||||
// in a 400 Bad Request.
|
||||
|
||||
const server = http.createServer(common.mustNotCall());
|
||||
|
||||
server.listen(0, common.mustCall(start));
|
||||
|
||||
function start() {
|
||||
const sock = net.connect(server.address().port);
|
||||
|
||||
sock.write('GET / HTTP/1.1\r\nHost: localhost:5000\r\n' +
|
||||
'Content-Length : 5\r\n\r\nhello');
|
||||
|
||||
let body = '';
|
||||
sock.setEncoding('utf8');
|
||||
sock.on('data', (chunk) => {
|
||||
body += chunk;
|
||||
});
|
||||
sock.on('end', common.mustCall(function() {
|
||||
assert.strictEqual(body, 'HTTP/1.1 400 Bad Request\r\n' +
|
||||
'Connection: close\r\n\r\n');
|
||||
server.close();
|
||||
}));
|
||||
}
|
||||
Reference in New Issue
Block a user