# Nebula NBL — Politique de sécurité

> Dernière revue : juin 2026. Audit conforme aux standards web cybersécurité 2026.

## 1. Principe directeur

Nebula minimise la surface d'attaque par **simplicité, transparence et réduction des permissions**. Aucun CDN tiers, aucune dépendance externe côté frontend, aucune collecte non-essentielle, aucun script tiers.

## 2. Durcissement réseau (en-têtes HTTP)

Le site applique **15 en-têtes de sécurité** sur chaque réponse :

| En-tête | Valeur | Effet |
|---|---|---|
| `Content-Security-Policy` | strict `self`-only + `connect-src https:` | Bloque tout script/style/image externe non autorisé |
| `Strict-Transport-Security` | `max-age=63072000; includeSubDomains; preload` | Force HTTPS 2 ans, éligible HSTS Preload List |
| `X-Frame-Options` | `DENY` | Empêche tout iframe hostile (clickjacking) |
| `X-Content-Type-Options` | `nosniff` | Empêche le MIME sniffing |
| `Referrer-Policy` | `strict-origin-when-cross-origin` (`no-referrer` sur /api) | Limite la fuite d'URLs sensibles |
| `Permissions-Policy` | `camera=(), microphone=(), geolocation=(), interest-cohort=(), browsing-topics=()` | Désactive caméra, micro, géoloc, FLoC et Topics API |
| `Cross-Origin-Opener-Policy` | `same-origin-allow-popups` | Isolation Spectre tout en gardant les fenêtres de partage |
| `Cross-Origin-Embedder-Policy` | `credentialless` | Isolation cross-origin moderne |
| `Cross-Origin-Resource-Policy` | `same-origin` (sauf `og-cover.jpg` en cross-origin pour les vignettes sociales) | Empêche l'inclusion non autorisée |
| `Origin-Agent-Cluster` | `?1` | Demande l'isolation par origin |
| `X-Permitted-Cross-Domain-Policies` | `none` | Bloque les fichiers crossdomain.xml hérités |
| `X-DNS-Prefetch-Control` | `off` | Pas de pré-résolution DNS (anti-leak) |
| `X-XSS-Protection` | `0` | Désactive l'auditeur XSS hérité (la CSP est plus stricte) |
| `Cache-Control` (API) | `no-store` | Empêche la mise en cache des réponses sensibles |

## 3. Backend (FastAPI)

- **Pas de Swagger en prod** : `docs_url=None`, `redoc_url=None`, `openapi_url=None`.
- **CORS strict** : origines configurées par variable d'environnement, `allow_credentials=False`, `allow_headers=["Content-Type","Accept"]`.
- **Rate-limit en mémoire** : 5 requêtes / 60 s / IP sur `/api/subscribe` → retour `429` au-delà.
- **Honeypot anti-bot** : champ caché `hp_website` invisible aux humains (position `x=-10000px`, `tabindex=-1`). Les bots qui le remplissent reçoivent une réponse `200` factice mais leur email n'est **jamais** stocké.
- **Anti-énumération** : sur doublon d'email, le backend renvoie un message neutre (« Tu fais déjà partie des Premières Étoiles ») au lieu d'un `409 Conflict` qui révélerait l'existence du compte.
- **Validation stricte** : `EmailStr` (RFC 5321, max 254 caractères), `locale` regex `[a-z]{2}(-[a-z]{2})?`, `source` validé contre une allowlist (`website`, `share`, `qr`, `email`, `partner`).
- **Indexes MongoDB** : unicité sur `email`, index temporel sur `created_at`.

## 4. Frontend statique

- **Aucun CDN** : polices Cormorant Garamond + Inter auto-hébergées, icônes SVG inline, scripts servis depuis l'origine.
- **Aucun cookie** : aucun cookie de session, aucun cookie de tracking.
- **Aucun pixel tiers** : pas de Google Analytics, pas de Facebook Pixel, pas de Meta Conversion API.
- **JSON-LD minimal** : uniquement un bloc `Organization` pour le SEO sémantique.
- **Tous les liens externes** : `rel="noopener"` pour empêcher la fuite via `window.opener`.

## 5. Confidentialité (RGPD)

Une seule donnée collectée : **l'adresse email** saisie volontairement, accompagnée de la langue de navigation et de l'horodatage. Aucun cookie, aucun tracking, aucun partage tiers.

- **Finalité** : annonces officielles Nebula (whitepaper final, adresse du contrat, ouverture de la vente).
- **Durée** : jusqu'à la fin de la Phase II ou désinscription.
- **Droits RGPD** : accès, rectification, effacement, portabilité — par simple demande à l'adresse contact qui sera publiée.

## 6. Promesses publiques pour le token NBL

Avant tout lancement officiel :

- ⏳ **Contrat NBL** publié sur **Base** après audit indépendant. Adresse exacte communiquée ici, dans le whitepaper et sur tous les canaux officiels.
- 🔒 **Liquidité (LP)** verrouillée publiquement min. **12 mois** via un service tiers vérifiable (Unicrypt / Team Finance).
- 🛡️ **Audit externe** (ex. Hacken, CertiK, PeckShield) commandé avant la Phase II « Fondation » — rapport public.
- 👁️ **Multisig 2/3** : trésorerie gérée par un wallet multisignature 2/3 partagé entre les Trois Célestes. Adresse publique affichée dès le déploiement.

## 7. Signalement d'une vulnérabilité

Si tu identifies une faille de sécurité, écris à **`security@nebulatkn.foundation`** (adresse activée à la mise en ligne). Merci de :

- Décrire le scénario reproductible
- Ne pas divulguer publiquement avant 90 jours ou correction
- Inclure ton handle si tu souhaites être remercié·e dans la section « Constellation des sentinelles »

Réponse sous 72 h, correctif sous 14 jours pour les failles critiques.

---

*Nebula NBL — la sécurité comme fondation, pas comme façade.*
