v1.0.92: шаг1 — SQL-инъекция, валидация UUID
This commit is contained in:
@@ -7,7 +7,7 @@ class ThreadingHTTPServer(ThreadingMixIn, HTTPServer):
|
|||||||
"""Многопоточный HTTP-сервер."""
|
"""Многопоточный HTTP-сервер."""
|
||||||
daemon_threads = True
|
daemon_threads = True
|
||||||
from urllib.parse import urlparse, parse_qs
|
from urllib.parse import urlparse, parse_qs
|
||||||
import subprocess, tempfile, os, sys, json, time
|
import subprocess, tempfile, os, sys, json, time, re
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
from llm_prompt import build_prompt
|
from llm_prompt import build_prompt
|
||||||
@@ -91,6 +91,10 @@ class Handler(BaseHTTPRequestHandler):
|
|||||||
if not cid:
|
if not cid:
|
||||||
self.send_error(400, "contract_id required")
|
self.send_error(400, "contract_id required")
|
||||||
return
|
return
|
||||||
|
# Validate UUID to prevent SQL injection
|
||||||
|
if not re.fullmatch(r'[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', cid, re.I):
|
||||||
|
self.send_error(400, "invalid contract_id format")
|
||||||
|
return
|
||||||
|
|
||||||
self.send_response(200)
|
self.send_response(200)
|
||||||
self.send_header("Content-Type", "text/event-stream; charset=utf-8")
|
self.send_header("Content-Type", "text/event-stream; charset=utf-8")
|
||||||
|
|||||||
Reference in New Issue
Block a user