nodejs/test/parallel/test-http-chunked-smuggling.js
Matteo Collina 2978b5a4a3
http: add regression test for chunked smuggling
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>
2021-10-12 15:40:03 +01:00

44 lines
963 B
JavaScript

'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.mustCall((request, response) => {
assert.notStrictEqual(request.url, '/admin');
response.end('hello world');
}), 1);
server.listen(0, common.mustCall(start));
function start() {
const sock = net.connect(server.address().port);
sock.write('' +
'GET / HTTP/1.1\r\n' +
'Host: localhost:8080\r\n' +
'Transfer-Encoding: chunked\r\n' +
'\r\n' +
'2 \n' +
'xx\r\n' +
'4c\r\n' +
'0\r\n' +
'\r\n' +
'GET /admin HTTP/1.1\r\n' +
'Host: localhost:8080\r\n' +
'Transfer-Encoding: chunked\r\n' +
'\r\n' +
'0\r\n' +
'\r\n'
);
sock.resume();
sock.on('end', common.mustCall(function() {
server.close();
}));
}