Ce que l'architecture garantit
Cette page décrit des mécanismes réellement en place, pas des intentions. Vous n'y lirez ni « 100 % sécurisé », ni « inviolable » : aucun système ne l'est, et l'affirmer serait le premier manquement à la sécurité.
Séparation des établissements
Chaque donnée porte l'identifiant de son établissement, et ce dernier n'est jamais fourni par le navigateur : il vient de la session serveur. Toute requête le filtre.
Une ressource appartenant à une autre école répond « introuvable », jamais une liste vide — un tableau vide affirmerait « cette ressource existe, elle est vide », ce qui est déjà une information. Un balayage automatique appelle chaque route avec les identifiants d'une autre école à chaque livraison.
Rôles et principe de moindre privilège
Quatre rôles : Direction, Directeur des disciplines, professeur, parent. Chacun reçoit strictement ce dont il a besoin.
Les permissions d'un enseignant portent sur ses classes, celles d'un parent sur ses enfants. Ce périmètre est résolu par le serveur à chaque requête. Masquer un bouton dans l'interface n'a jamais protégé quoi que ce soit : l'autorisation est vérifiée derrière, toujours.
Accès par invitation, révocable
Personne ne crée de compte librement. Un accès naît d'une invitation émise par la Direction, valable 7 jours, utilisable une seule fois, et qui porte déjà son périmètre.
Un accès se révoque, y compris après acceptation : les sessions ouvertes sont fermées et la reconnexion devient impossible. La révocation coupe un accès — elle ne détruit aucune donnée scolaire.
Sessions et mots de passe
Les mots de passe sont stockés sous forme de condensat, jamais en clair. Les jetons de session sont également hachés en base.
Chaque requête revérifie que la personne appartient toujours à l'établissement et que son accès est actif — un accès révoqué tombe immédiatement, sans attendre l'expiration de la session.
Les tentatives de connexion sont limitées en débit.
Argent et traçabilité
Aucun solde n'est stocké : il se recalcule toujours à partir des paiements confirmés. Le montant d'un paiement est validé par le serveur contre la dette réelle — un montant modifié dans le navigateur est refusé.
Chaque paiement porte une clé d'idempotence : un double clic, un rechargement ou une coupure réseau ne produisent jamais deux encaissements. Un reçu numéroté est émis à la confirmation réelle, jamais avant.
Les opérations sensibles sont journalisées : qui, quand, quoi, et l'état avant et après.
L'assistant est en lecture seule
Le module d'assistance ne contient aucune opération d'écriture. Ce n'est pas un filtre de mots-clés que l'on pourrait contourner par une formulation habile : la capacité d'écrire n'existe pas dans ce code.
Il ne peut donc ni créer, ni modifier, ni supprimer, ni payer, ni inviter, ni changer une permission, ni prendre une décision disciplinaire. Ce qui engage un élève ou une famille reste décidé par une personne.
Ce que nous ne prétendons pas
Klassio est un produit en construction. Certaines choses ne sont pas encore en place, et nous préférons le dire : il n'existe aujourd'hui aucune intégration de paiement Mobile Money ou bancaire ; les procédures de restauration de sauvegarde n'ont pas encore été exercées en conditions réelles ; aucune certification de sécurité indépendante n'a été obtenue à ce jour. Nous ne revendiquons rien de tout cela.
Prêt à simplifier votre établissement ?
Créez votre espace en quelques minutes. Vous seul décidez qui y entre.