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.
This commit is contained in:
Gregor 2017-05-29 21:10:51 +02:00
parent 90cb4e47aa
commit f7bb7303e2

View File

@ -112,6 +112,11 @@ return function (request)
local line = request:sub(1, e - 1) local line = request:sub(1, e - 1)
local r = {} local r = {}
_, i, r.method, r.request = line:find("^([A-Z]+) (.-) HTTP/[1-9]+.[0-9]+$") _, 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.methodIsValid = validateMethod(r.method)
r.uri = parseUri(r.request) r.uri = parseUri(r.request)
r.getRequestData = getRequestData(request) r.getRequestData = getRequestData(request)