Publicamos los vectores de abuso que hemos identificado y qué hacemos con cada uno. Es un documento vivo — se actualiza a medida que lanzamos refuerzos.
Contracargo tras la entrega del dosier
ParcialVector
El comprador adquiere el dosier, descarga el PDF y luego disputa el cargo como «servicio no recibido» — alegando que el recibo nunca llegó.
Mitigación
Cada visualización del dosier y descarga del PDF se registra con marca de tiempo + IP + agente de usuario. Un webhook de Stripe escucha los eventos de contracargo; enviamos automáticamente el registro de entrega + IP-geo + usuario con sesión iniciada como prueba convincente (código de motivo 13.1 — crédito no procesado / fraude amistoso).
Uso compartido de credenciales del plan Inversor
En esperaVector
Una suscripción de $129/mes usada por toda una oficina de corretaje de compradores o una agencia de 20 personas, socavando la economía unitaria.
Mitigación
Límite de tasa suave en la generación de dosieres por cuenta/IP (Upstash). Tope estricto implementado tras el lanzamiento mediante detección de sesiones concurrentes en la auth de Supabase + hash de huella. Se anuncia un nivel de precio para agencias si se detecta abuso.
Prueba de tarjetas vía /upgrade
ParcialVector
Un bot sondea /upgrade con números de tarjeta robados en un barrido de $1 a $49 para encontrar tarjetas activas.
Mitigación
Límite de tasa en /api/checkout (5/min/IP, duro 20/h). Las reglas por defecto de Stripe Radar cubren velocidad de BIN + discrepancia de CVC + rechazos repetidos. Se añade reCAPTCHA Enterprise en el checkout cuando la proporción de bots supera el 5 %.
Un abogado malicioso publica propiedades ficticias
DocumentadoVector
Un perfil de abogado falso publica propiedades que no representa, recolecta clientes potenciales y luego desaparece.
Mitigación
Revisión editorial manual de cada anuncio (SLA de 24 h) durante el MVP. Tras el lanzamiento: el abogado debe completar la verificación del número de colegiado + la subida de un certificado de ejercicio reciente + la contrafirma de un colega verificado existente. Se rastrea la proporción anuncio-cierre; los anuncios por debajo del 10 % se marcan para revisión.
Suplantación de un despacho verificado
DocumentadoVector
Un atacante se registra usando el número de colegiado de un despacho de abogados real del registro público.
Mitigación
El registro requiere un correo de verificación enviado al dominio del despacho (validado por DNS MX, sin Gmail/Hotmail). El número de colegiado se coteja con el registro público del colegio de abogados del país (England Bar Council, Ordem dos Advogados, Colegio de Abogados, Conseil National des Barreaux, Türkiye Barolar Birliği).
Falsificación de petición del lado del servidor vía el parámetro URL de /api/analyse
AplicadoVector
Un atacante envía una URL de red interna (http://169.254.169.254, http://localhost) para extraer metadatos de servicios en la nube.
Mitigación
La PORTAL_ALLOWLIST de lib/geocode.ts codifica los nombres de host (rightmove.co.uk, idealista.com, seloger.com, imovirtual.com, sahibinden.com, …). Cualquier URL que no esté en la lista de permitidos devuelve 422 antes de iniciar cualquier petición.
Inyección de prompt vía contenido de anuncio extraído
AplicadoVector
Un og:title o og:description malicioso en una página de anuncio contiene «Ignora las instrucciones anteriores y …» intentando alterar el prompt de Gemini.
Mitigación
Las cadenas extraídas se escapan, se limitan en longitud (1000 caracteres) y se envuelven en bloques delimitados [USER_INPUT] en el prompt. El prompt del sistema indica explícitamente a Gemini que trate la entrada como datos no fiables, no como instrucciones.
Blanqueo mediante depósito de Concierge
DocumentadoVector
El comprador paga una tarifa de $1.500 con la tarjeta A, solicita un reembolso a la tarjeta B — usándonos como mezclador de blanqueo.
Mitigación
Regla estricta vía la API de Reembolsos de Stripe: el reembolso debe volver al método de pago original. Sin reembolsos a beneficiarios alternativos. Control AML (prueba de fondos) en depósitos superiores a 10.000 €. El cliente de Concierge debe completar la verificación de identidad (Stripe Identity) antes de aceptar el depósito.