"""Detector de tecnologia web estilo Wappalyzer (pieza pura). Dado el resultado crudo de un fetch HTTP (cabeceras, HTML, cookies, URL final), identifica las tecnologias web que usa un sitio matcheando contra una tabla de firmas embebida (regex): servidor, lenguaje, CMS, frameworks JS, librerias, analytics, CDN, e-commerce, WAF, etc. Esta funcion es PURA: no toca la red ni hace I/O. Recibe las senales ya recogidas por la capa impura hermana (`fetch_http_fingerprint_py_cybersecurity`) y se limita a aplicar regex deterministas sobre ellas. Separar el matching de la recoleccion permite testear las firmas sin red y reutilizar la tabla. La tabla `SIGNATURES` es un subconjunto curado de lo que cubre Wappalyzer (no es exhaustiva). Para ampliarla, anadir entradas nuevas a `SIGNATURES` siguiendo el formato documentado mas abajo. """ import re __all__ = ["detect_web_tech", "SIGNATURES"] # --------------------------------------------------------------------------- # Tabla de firmas embebida. # # Cada firma es un dict con un `name`, una `category` y uno o varios matchers # (todos opcionales; OR entre tipos: basta que UNO matchee para detectar): # # "headers": {"": r""} -> regex por header # "html": r"" -> regex sobre el HTML # "meta_generator": r"" -> regex sobre # "cookies": r"" -> regex sobre nombres de cookies # "script_src": r"" -> regex sobre src de