diff --git a/network.py b/network.py index 4a778d7..f1a93cc 100644 --- a/network.py +++ b/network.py @@ -1,8 +1,13 @@ +# Работа с сетью import socket from requests import get +# Очевидно import os from random import randint +# Работа с архивами from shutil import unpack_archive +# Убираем ненужное (../some => some) +from re import compile, sub from verify import * @@ -13,6 +18,7 @@ from verify import * # 2. [+] Проверка существования сайта # 3. [+] Передача сайта # 4. Приём рассылки сайтов +# 5. Проверка всех сайтов def port_gen(): port = randint(4000, 4200) @@ -23,6 +29,19 @@ def port_gen(): port = randint(4000, 4200) return port +# ../some => some +# Защита от проверки папок выше, чем нужно и др. +def v_check(check): + regex = compile('[^a-zA-Zа-яА-ЯЁё.]') + check = regex.sub('', check) + + if check.count('.') > 1: + return 'BAD' + + return check + + + def server_http(): os.chdir("cached") os.system("python -m http.server") @@ -52,6 +71,11 @@ def server(http_port): conn.send("pong".encode()) elif op[:3] == "is_": check = op[3:] + print(check) + # Защита от доступа выше + check = v_check(check) + print(check) + if os.path.exists(f'cached/{check}'): conn.send(str(http_port).encode()) else: