WSGI question: reading headers before message body has been read
Diez B. Roggisch
deets at nospam.web.de
Sun Jan 18 15:40:41 EST 2009
Ron Garret schrieb:
> On Jan 18, 11:29 am, "Diez B. Roggisch" <de... at nospam.web.de> wrote:
>> Ron Garret schrieb:
>>
>>
>>
>>> I'm writing a WSGI application and I would like to check the content-
>>> length header before reading the content to make sure that the content
>>> is not too big in order to prevent denial-of-service attacks. So I do
>>> something like this:
>>> def application(environ, start_response):
>>> status = "200 OK"
>>> headers = [('Content-Type', 'text/html'), ]
>>> start_response(status, headers)
>>> if int(environ['CONTENT_LENGTH'])>1000: return 'File too big'
>>> But this doesn't seem to work. If I upload a huge file it still waits
>>> until the entire file has been uploaded before complaining that it's
>>> too big.
>>> Is it possible to read the HTTP headers in WSGI before the request
>>> body has been read?
>> AFAIK that is nothing that WSGI defines - it's an implementation-detail
>> of your server. Which one do you use?
>
> Apache at the moment, with lighttpd as a contender to replace it.
Together with mod_wsgi?
Diez
More information about the Python-list
mailing list