From f7bb7303e26a27f402993800ce410fce56f191ac Mon Sep 17 00:00:00 2001 From: Gregor Date: Mon, 29 May 2017 21:10:51 +0200 Subject: [PATCH] filter invalid requests sometimes I observe requests which are malformed (seem to be binary data) so everything that does not have a method and request (url) defined gets kicked. --- httpserver-request.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/httpserver-request.lua b/httpserver-request.lua index bf51d49..c6414da 100644 --- a/httpserver-request.lua +++ b/httpserver-request.lua @@ -112,6 +112,11 @@ return function (request) local line = request:sub(1, e - 1) local r = {} _, i, r.method, r.request = line:find("^([A-Z]+) (.-) HTTP/[1-9]+.[0-9]+$") + if not (r.method and r.request) then + --print("invalid request: ") + --print(request) + return nil + end r.methodIsValid = validateMethod(r.method) r.uri = parseUri(r.request) r.getRequestData = getRequestData(request)