aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan <me@jordan.im>2020-02-02 10:44:02 -0700
committerJordan <me@jordan.im>2020-02-02 10:44:02 -0700
commit28e4ed0e3296240ae4b86fc86cf11668e43fd452 (patch)
treecea28b7a14b3ef3f371f8cc24b8f0290690e9116
parent68b28c34c1e361b4a28ec9734fcd91a1801d4e48 (diff)
downloadft-bypass-master.tar.gz
ft-bypass-master.zip
block requests for resources which lack content-lengthHEADmaster
-rw-r--r--lib/request.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/request.py b/lib/request.py
index 6cdfa57..7cf0edf 100644
--- a/lib/request.py
+++ b/lib/request.py
@@ -49,8 +49,12 @@ def retrieve(url, headers):
request_info = dict(request.info())
headers = {k.lower(): v for k, v in request_info.items()}
- # ensure size of resource falls within MAX_SIZE before downloading
- if int(headers.get('content-length')) > MAX_SIZE:
+ # ensure size of resource falls below MAX_SIZE before downloading
+ # TODO: support requests for resources which lack content-length (streams)
+ if not headers.get('content-length'):
+ print('no content-length provided, blocking: %s' % (url))
+ return {'url': url, 'code': 413, 'data': None, 'meta': None}
+ if int(headers['content-length']) > MAX_SIZE:
print('exceeded MAX_SIZE of %s bytes, skipping: %s' % (MAX_SIZE, url))
return {'url': url, 'code': 413, 'data': None, 'meta': None}