added banlist

This commit is contained in:
2025-08-15 00:25:49 +03:00
parent 54c9ccef80
commit 4c8f908f18
5 changed files with 20 additions and 6 deletions

0
banlist.lol Normal file
View File

View File

@@ -1,4 +1,4 @@
name="debweb 1.2.2"
name="debweb 1.2.3"
proxied=False
addr="localhost"

View File

@@ -1,7 +1,7 @@
<html>
<head><title>404 Forbidden</title></head>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>404 Forbidden</h1></center>
<center><h1>403 Forbidden</h1></center>
<hr><center>debweb</center>
</body>
</html>

14
main.py
View File

@@ -77,7 +77,6 @@ class WebServer:
if real_addr and config.proxied:
addr = (real_addr, addr[1])
request = data.split("\n")[0]
parts = request.split()
if len(parts) < 2: return
@@ -86,7 +85,7 @@ class WebServer:
file_name = path[1:] if path.startswith('/') else path
file_path = os.path.abspath(os.path.join(config.directory, file_name))
if not file_path.startswith(os.path.abspath(config.directory)):
if not file_path.startswith(os.path.abspath(config.directory)): # directory traversal
await self.log(config.err_msgs[418], addr, file_path)
file_size = os.path.getsize(config.err_files[418])
await self.send_headers(writer, 418, file_size)
@@ -95,6 +94,17 @@ class WebServer:
writer.close()
await writer.wait_closed()
return
if addr[0] in utils.get_banlist(): # banlist for pidors
await self.log(config.err_msgs[403], addr, file_path)
file_size = os.path.getsize(config.err_files[403])
await self.send_headers(writer, 403, file_size)
await self.send_file(writer, config.err_files[403], file_size)
writer.close()
await writer.wait_closed()
return
if os.path.isfile(file_path):

View File

@@ -10,4 +10,8 @@ def get_mod_time(path: str, format: str="%a %b %e %H:%M:%S %Z %Y") -> str:
def get_create_time(path: str, format: str="%a %b %e %H:%M:%S %Z %Y") -> str:
create_time = os.path.getctime(path)
create_datetime = datetime.datetime.fromtimestamp(create_time)
return create_datetime.strftime(format)
return create_datetime.strftime(format)
def get_banlist() -> list:
return list(set(open("banlist.lol").readlines()))