Sécurité
La sécurité n'est pas une option, c'est le socle.
Piks-l est construit autour du cloisonnement et du moindre privilège. Vos clients — et les leurs — méritent ce niveau de sérieux.
Les principes
Huit décisions structurelles
Aucune n'est un réglage que l'on pourrait désactiver : ce sont des choix de conception.
Cloisonnement par site
Le contenu de chaque site est filtré par son identifiant, à un seul endroit du code — jamais dispersé dans le code généré de chaque site. Quand le provisioning est activé, chaque site dispose en plus de sa propre base.
Aucun identifiant de base dans un site client
Un site généré ne connaît que deux valeurs : son identifiant et l'adresse de l'API publique. Il ne peut donc pas lire ce qui ne lui appartient pas, même si son code était modifié.
Row-Level Security
Les politiques d'accès s'appliquent au niveau de chaque ligne, pas seulement au niveau de l'application. Une requête qui oublierait son filtre ne remonte rien.
Secrets côté serveur
Les clés de service ne transitent jamais vers le navigateur. Les écritures sensibles passent par un rôle dédié, appelé depuis le serveur uniquement.
Accès par rôle
Administrateur, modérateur, client : chaque route de l'API et chaque écran sont gardés selon le rôle, côté serveur — pas seulement masqués dans l'interface.
Journal d'audit
Suppressions, changements de rôle, relances de génération : les actions sensibles sont consignées avec leur auteur et leur horodatage.
Validation du code généré
Chemins protégés, traversées de répertoire, motifs interdits — `eval`, `child_process`, accès disque direct — sont refusés avant que le code n'entre dans un dépôt.
Un site non validé ne sert rien
Tant qu'un site n'est pas déclaré en ligne, l'API publique lui répond 403. Le travail en cours n'est jamais exposé.
Ce que l'expérience nous a appris
Le cloisonnement actuel vient d'un défaut constaté : les sites générés recevaient les identifiants de la base centrale et affichaient tous le même blog et la même boutique. La correction n'a pas été un filtre de plus dans le code généré — c'était le retirer de l'équation. Un site client n'a plus aucun moyen technique d'atteindre les données d'un autre.
Des questions sur la sécurité ?
On vous explique en détail comment vos données et celles de vos clients sont protégées — architecture, accès, sauvegardes.
