commit 462555d5326073c4352eb35b2411ee568333e325
parent 714de58180072a5563ae1f3d96b8697892f20506
Author: Martin Herkt <lachs0r@srsfckn.biz>
Date:   Fri,  3 Feb 2017 04:10:58 +0100
Add support for upload IP blacklists
The format is one address per line, with # used for comments.
Diffstat:
1 file changed, 16 insertions(+), 0 deletions(-)
diff --git a/fhost.py b/fhost.py
@@ -42,6 +42,8 @@ app.config["FHOST_MIME_BLACKLIST"] = [
     "application/java-vm"
 ]
 
+app.config["FHOST_UPLOAD_BLACKLIST"] = "tornodes.txt"
+
 try:
     mimedetect = Magic(mime=True, mime_encoding=False)
 except:
@@ -121,7 +123,21 @@ def shorten(url):
 
         return geturl(u.getname())
 
+def in_upload_bl(addr):
+    if os.path.isfile(app.config["FHOST_UPLOAD_BLACKLIST"]):
+        with open(app.config["FHOST_UPLOAD_BLACKLIST"], "r") as bl:
+            check = addr.lstrip("::ffff:")
+            for l in bl.readlines():
+                if not l.startswith("#"):
+                    if check == l.rstrip():
+                        return True
+
+    return False
+
 def store_file(f, addr):
+    if in_upload_bl(addr):
+        return "Your host is blocked from uploading files.\n", 451
+
     data = f.stream.read()
     digest = sha256(data).hexdigest()
     existing = File.query.filter_by(sha256=digest).first()