Versions et sécurité
Sommaire
Versions
Lues dans le Cargo.toml de Runique à chaque version publiée.
| Élément | Version |
|---|---|
| Rust (minimum) | 1.94 |
| Édition Rust | 2024 |
axum | 0.8.9 |
tower | 0.5.3 |
tower-http | 0.7.1 |
tower-sessions | 0.15.0 |
tokio | 1 |
sea-orm | 2.0.4 (épinglée : utiliser exactement celle-ci) |
sea-orm-migration | 2.0.4 (épinglée : utiliser exactement celle-ci) |
sea-query | 1.0.1 |
tera | 2.1 |
serde | 1.0 |
chrono | 0.4.45 |
uuid | 1.29.1 |
argon2 | 0.6 |
lettre | 0.11.22 |
Moteurs testés
La suite de tests passe sur ces moteurs (images de docker-compose.yml).
| Moteur | Image de test |
|---|---|
| PostgreSQL | postgres:16-alpine |
| MariaDB | mariadb:11 |
| SQLite | en mémoire, embarqué |
Compatibilité
Les tableaux Versions et Moteurs testés de la page sont générés depuis Cargo.toml et
docker-compose.yml. Ce fichier ne contient que la partie écrite à la main.
Réglages par défaut
Ce que Runique fait sans réglage de ta part. Chaque valeur se change, sur la page indiquée.
| Élément | Par défaut | Page |
|---|---|---|
| Échappement des templates (Tera) | actif sur .html et .xml ; {{ var }} toujours échappé, sauf avec le filtre safe | Syntaxe des templates |
| CSRF | exigé pour toute méthode sauf GET et HEAD | CSRF |
| CSP | default-src 'none', script-src 'self', style-src 'self' 'unsafe-inline' | CSP |
| Session anonyme | 5 minutes d'inactivité, en mémoire seulement | Sessions |
| Session connectée | 24 heures d'inactivité, aussi enregistrée en base | Sessions |
LoginGuard | 5 essais, puis 5 minutes de blocage | LoginGuard |
RateLimiter | 60 requêtes par minute, sur les routes où il est attaché | Rate limit |
| Mots de passe | hachés avec Argon2 | Mots de passe |
| Taille des requêtes | formulaire et JSON : 2 Mo lus en mémoire ; envoi de fichiers : 100 Mo (RUNIQUE_MAX_BODY_MB) | Assets et médias |
Bonnes pratiques
- Utiliser exactement la version de SeaORM épinglée ci-dessus dans ton projet et dans son crate
migration/:runique newl'écrit pour toi. - Générer les migrations en développement (
runique makemigrations), les commiter, et n'appliquer en production quemigration up. - Tester sur le moteur de production, pas seulement sur SQLite : certains comportements (fuseaux horaires, casse des textes, index des clés étrangères) diffèrent d'un moteur à l'autre.
- Sous MySQL et MariaDB, sauvegarder la base avant chaque
migration up: unCREATEou unALTERn'y est jamais annulé.
À éviter
- Mélanger une autre version de SeaORM ou de sea-query dans le même projet : les types ne correspondraient plus.
- Lancer
runique makemigrationsen production. - Écrire du SQL brut là où
search!,search_cond!ou les méthodes de SeaORM suffisent : le placeholder?casse Postgres. - Mettre
| safesur une valeur qui vient d'un visiteur.