Sécurité

La sécurité, réglée d'avance.

Un site qui vend, prend des rendez-vous et gère des comptes clients détient des données qui ne sont pas les vôtres. JEIKO les protège par défaut : il n'y a rien à activer, donc rien à oublier.

Les comptes

La porte d'entrée la plus attaquée d'un site, et celle qui ouvre le plus de choses.

  1. Adresse e-mail vérifiée obligatoire. Un compte ne se connecte qu'une fois son adresse confirmée ; les inscriptions jamais confirmées sont supprimées au bout de trente jours.
  2. Mots de passe d'au moins dix caractères, refusés s'ils sont trop courants, trop proches du nom ou entièrement numériques.
  3. Double authentification au choix : application d'authentification, clé de sécurité ou passkey, codes de secours — ou, à défaut, un code à six chiffres envoyé par e-mail.
  4. Journal de sécurité : connexions, échecs, déconnexions, changements de rôle. Après un incident, on sait quand et d'où.
  5. Sessions actives visibles, et un bouton qui déconnecte réellement partout.
  6. Des rôles plutôt qu'un super-utilisateur pour tous : chaque collaborateur, et chaque agent IA, ne reçoit que les droits de son domaine.

Ce que l'on saisit et ce que l'on envoie

Tout ce qui entre dans le site est contrôlé avant d'en ressortir, chez vos visiteurs ou dans votre boîte de réception.

  1. Le HTML est assaini à l'enregistrement : la mise en forme reste, mais les balises script, les attributs on… et les liens javascript: sont retirés. Un rédacteur ne peut pas, même par mégarde, faire exécuter du code chez un administrateur.
  2. Le CSS global est analysé, pas recopié : imports, polices et adresses externes sont refusés, et ses règles ne peuvent pas atteindre l'administration.
  3. Les formulaires publics sont protégés contre les robots : un champ leurre invisible, des plafonds par adresse IP sur la réservation, les formulaires de contact et le consentement aux cookies. Le refus reste volontairement vague, pour ne rien apprendre à un robot.
  4. Les envois d'images sont vérifiés : seul un vrai fichier image est accepté, quelle que soit son extension.

Les secrets

Une copie de la base — sauvegarde égarée, disque revendu — ne doit livrer aucun accès. JEIKO range donc ses secrets en trois endroits distincts.

  1. Hors de la base : la clé secrète du site et les identifiants de la base vivent dans le .env, lisible par le seul compte du site.
  2. Chiffrés en base : clé Stripe, secret de webhook, mot de passe SMTP, secrets de connexion Google ou Apple. La clé de chiffrement est dérivée de la clé secrète, qui n'est jamais en base : un vol de la base seule ne donne rien.
  3. Jamais conservés : les jetons d'agents IA et les codes de double authentification ne sont gardés que sous forme d'empreinte. Un jeton s'affiche une fois, à sa création ; perdu, il se remplace.

Changer la clé secrète sans perdre les secrets chiffrés

# .env
SECRET_KEY=nouvelle-cle
SECRET_KEY_FALLBACKS=ancienne-cle

# puis réenregistrer les écrans Paiement et E-mail,
# et retirer SECRET_KEY_FALLBACKS

Le serveur

Chaque site tourne sous son propre compte Unix, avec sa base et son service. Le HTTPS est posé à l'installation, et les en-têtes de sécurité suivent.

ProtectionRéglageContre quoi
HTTPS obligatoireredirection, HSTS d'un anL'écoute et la modification du trafic
Cadres interditsX-Frame-Options : DENYLe détournement de clic depuis une page tierce
Type de contenu strictX-Content-Type-Options : nosniffUn fichier interprété comme un script
Référent limitéstrict-origin-when-cross-originLa fuite d'adresses internes vers d'autres sites
CookiesSecure, HttpOnly, SameSite=LaxLe vol de session et les requêtes forgées
Mise à jourscript système hors du site, paquet vérifié par empreinteUne faille du site transformée en accès administrateur au serveur

Le site ne peut que déclencher sa mise à jour : ce qui s'exécute avec les droits d'administration appartient au système, pas au site. Avant d'appliquer une version, la base est sauvegardée ; si une étape échoue, la version précédente est rétablie.

Les données personnelles

Le RGPD n'est pas une bannière : c'est une durée de conservation, un droit d'accès et un droit à l'oubli. JEIKO les applique.

  1. Bannière de cookies par catégorie, avec une preuve de consentement horodatée et la version de la politique acceptée.
  2. Export des données d'un compte en un fichier : profil, adresses, consentements, commandes, formations, rendez-vous, questionnaires. Jamais le mot de passe, jamais les données d'un tiers.
  3. Effacement sur demande, avec une preuve qui ne contient plus aucune donnée personnelle.
  4. Purges automatiques : journal de sécurité au bout d'un an, sessions fermées au bout de trente jours, inscriptions non confirmées au bout de trente jours.

Ajuster les durées de conservation

# .env — en jours
JEIKO_SECURITY_EVENTS_RETENTION_DAYS=365
JEIKO_USER_SESSIONS_RETENTION_DAYS=30
JEIKO_UNVERIFIED_ACCOUNT_TTL_DAYS=30

Ce qui reste à votre charge

Un outil honnête dit aussi ce qu'il ne fait pas.

  1. Une sauvegarde hors du serveur. JEIKO sauvegarde la base chaque jour et avant chaque mise à jour, sur la machine elle-même. Une copie ailleurs vous protège de la perte du serveur.
  2. Les mises à jour du système Debian, qui ne dépendent pas de JEIKO.
  3. Le choix du second facteur. Le code par e-mail protège d'un mot de passe volé, pas d'une boîte mail compromise : pour un administrateur, préférez une application ou une clé de sécurité.

Installation et sauvegardesLa pile technique