fix: Opus review — C1 path traversal, H1 MAX_BODY, H2 dedup, M1 passport, M3+L1 versions+imports
Deploy contracts-flask / validate (push) Successful in 0s

This commit is contained in:
2026-06-29 18:52:40 +04:00
parent de66eb9b1e
commit 64a45a18bf
4 changed files with 26 additions and 84 deletions
+3 -3
View File
@@ -6,11 +6,10 @@ DrHider — обфускация документов (двухпроходна
Согласованность: одна и та же сущность во всех файлах → одно и то же фиктивное значение.
"""
DRHIDER_VERSION = "1.2"
DRHIDER_VERSION = "1.3"
import io
import csv
import re
import hashlib
import random
import string
import zipfile
@@ -154,7 +153,8 @@ def generate_ks(original: str) -> str:
def generate_passport(original: str) -> str:
prefix = re.match(r'(?:паспорт|серия\s+номер)[\s:№]*', original, re.IGNORECASE).group(0)
m = re.match(r'(?:паспорт|серия\s+номер)[\s:№]*', original, re.IGNORECASE)
prefix = m.group(0) if m else ""
return prefix + f"{random.randint(10,99)} {random.randint(10,99)} {_random_digits(6)}"
+7 -2
View File
@@ -3,9 +3,11 @@
from http.server import HTTPServer, BaseHTTPRequestHandler
from socketserver import ThreadingMixIn, TCPServer
from urllib.parse import urlparse
import json, re, os, sys, cgi, io as io_mod
import json, re, os, sys, cgi
DRHIDER_SERVER_VERSION = "1.0"
DRHIDER_SERVER_VERSION = "1.3"
MAX_BODY = 200 * 1024 * 1024 # 200 MB
# ── Загрузка .env ────────────────────────────────────────────────────────
_env_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", ".env")
@@ -51,6 +53,9 @@ class Handler(BaseHTTPRequestHandler):
from drhider import obfuscate_files
length = int(self.headers.get("Content-Length", 0))
if length <= 0 or length > MAX_BODY:
self._json({"ok": False, "error": "Файл слишком большой"}, 413)
return
raw = self.rfile.read(length)
ctype = self.headers.get("Content-Type", "")