diff --git a/.gitignore b/.gitignore index e416d2c..7d75f0c 100755 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ /backend/db/firegex.db /backend/db/firegex.db-journal /backend/proxy/proxy +docker-compose.yml # production /frontend/build diff --git a/README.md b/README.md index 9bf8f22..c9f27f9 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,6 @@ # Firegex-API Documentation ### This is a short description of the API -## TODO - -1. back and frontend password -2. compile c++ -O3 - # # Documentation ## Index diff --git a/backend/app.py b/backend/app.py index d60965a..c60a6fa 100644 --- a/backend/app.py +++ b/backend/app.py @@ -1,4 +1,4 @@ -import sqlite3, subprocess, sys, threading, bcrypt, secrets, time +import sqlite3, subprocess, sys, threading, bcrypt, secrets, time, re from flask import Flask, jsonify, request, abort, session from functools import wraps from flask_cors import CORS @@ -278,7 +278,9 @@ def post_regexes_add(): "is_blacklist" : {"type" : "boolean"}, "mode" : {"type" : "string"}, }, - }) + }) + if not re.match("^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$",req["regex"]): + return abort(400) except Exception: return abort(400) db.query("INSERT INTO regexes (service_id, regex, is_blacklist, mode) VALUES (?, ?, ?, ?);", diff --git a/backend/utils.py b/backend/utils.py index f3366f7..b4df4b0 100755 --- a/backend/utils.py +++ b/backend/utils.py @@ -76,13 +76,14 @@ class ProxyManager: self.lock = threading.Lock() def __clear_proxy_table(self): - for key in self.proxy_table.keys(): - if not self.proxy_table[key]["thread"].is_alive(): - del self.proxy_table[key] + with self.lock: + for key in list(self.proxy_table.keys()): + if not self.proxy_table[key]["thread"].is_alive(): + del self.proxy_table[key] def reload(self): - with self.lock: - self.__clear_proxy_table() + self.__clear_proxy_table() + with self.lock: for srv_id in self.db.query('SELECT service_id, status FROM services;'): srv_id, n_status = srv_id if srv_id in self.proxy_table: diff --git a/docker-compose.test.yml b/docker-compose.test.yml deleted file mode 100755 index a8afcdb..0000000 --- a/docker-compose.test.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: '3.9' - -services: - firewall: - restart: unless-stopped - build: . - ports: - - 80:80 - environment: - - NGINX_PORT=80 - volumes: - - /execute/db - \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100755 index a47e003..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: '3.9' - -services: - firewall: - restart: unless-stopped - build: . - network_mode: "host" - environment: - - NGINX_PORT=4444 - volumes: - - /execute/db - \ No newline at end of file diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index e01df7e..06d47af 100755 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -69,7 +69,7 @@ function App() { return