Confiance & sécurité

Registre des fraudes & contrôles

Nous publions les vecteurs d’abus identifiés et ce que nous faisons pour chacun. Ce document est vivant — il évolue à mesure que nous livrons des renforcements.

Chargeback after dossier delivery

Partiel

Vecteur

Buyer purchases dossier, downloads PDF, then disputes the charge as 'service not received' — claiming the receipt never arrived.

Mesure

Every dossier render and PDF download is logged with timestamp + IP + user-agent. Stripe webhook listens for chargeback events; we auto-submit the delivery log + IP-geo + signed-in user as compelling evidence (Reason Code 13.1 — credit not processed / friendly fraud).

Investor-plan credential sharing

En attente

Vecteur

One €99/mo subscription used by a whole buyer-broker office or 20-person agency, undermining unit economics.

Mesure

Soft rate-limit dossier generation per account/IP (Upstash). Hard-cap implemented post-launch via concurrent-session detection in Supabase auth + fingerprint hashing. Agency pricing tier announced if abuse detected.

Card-testing via /upgrade

Partiel

Vecteur

Bot probes /upgrade with stolen card numbers in a $1-€49 sweep to find live cards.

Mesure

Rate-limit /api/checkout (5/min/IP, hard 20/hr). Stripe Radar default rules cover BIN-velocity + CVC-mismatch + repeated-decline. Add reCAPTCHA Enterprise on checkout when bot ratio exceeds 5%.

Bad-actor solicitor lists fictional properties

Documenté

Vecteur

Fake solicitor profile lists properties they don't represent, harvests buyer-intro leads, then disappears.

Mesure

Manual editorial review of every listing (24h SLA) during MVP. Post-launch: solicitor must complete bar-number verification + recent practising certificate upload + counter-signature from existing verified peer. Listing-to-close conversion ratio tracked; listings <10% are flagged for review.

Impersonating a verified firm

Documenté

Vecteur

Attacker registers using a real solicitor firm's bar number from public register.

Mesure

Sign-up requires a verification email sent to the firm's domain (DNS MX-validated, no Gmail/Hotmail). Bar-number is cross-referenced against the country bar association's public register (England Bar Council, Ordem dos Advogados, Colegio de Abogados, Conseil National des Barreaux, Türkiye Barolar Birliği).

Server-side request forgery via /api/analyse URL parameter

Appliqué

Vecteur

Attacker submits an internal-network URL (http://169.254.169.254, http://localhost) to extract metadata from cloud services.

Mesure

lib/geocode.ts PORTAL_ALLOWLIST hard-codes hostnames (rightmove.co.uk, idealista.com, seloger.com, imovirtual.com, sahibinden.com, …). Any URL not on the allowlist returns 422 before any fetch is initiated.

Prompt injection via scraped listing content

Appliqué

Vecteur

Malicious og:title or og:description on a listing page contains 'Ignore previous instructions and …' attempting to alter the Gemini prompt.

Mesure

Scraped strings are escaped, length-capped (1000 char), and wrapped in delimited [USER_INPUT] blocks in the prompt. System prompt explicitly instructs Gemini to treat the input as untrusted data, not instructions.

Concierge deposit laundering

Documenté

Vecteur

Buyer pays €699 deposit with card A, requests refund to card B — using us as a money-laundering mixer.

Mesure

Hard rule via Stripe Refunds API: refund must return to original payment method. No alternative-payee refunds. AML check (proof of funds) on deposits >€10k. Concierge customer must complete identity verification (Stripe Identity) before deposit is accepted.

Vous avez trouvé un vecteur non couvert ?

Écrivez à security@outpost.tools. Prime de divulgation responsable : 50–1 000 $ selon la gravité.