EBIOS RM Pro v5 est une application web 100% client-side (exécutée uniquement dans le navigateur). Les données sont stockées localement dans le localStorage du navigateur et ne sont jamais transmises à un serveur distant.
Toutes les données utilisateur sont échappées avant affichage via la fonction esc() :
function esc(str){
if(str===null||str===undefined)return '';
const div=document.createElement('div');
div.textContent=String(str);
return div.innerHTML;
}Les entrées utilisateur sont validées et nettoyées :
- Longueur maximale : Les chaînes sont tronquées (200-1000 caractères selon le champ)
- Caractères dangereux : Les caractères
<et>sont filtrés - Détection de patterns malveillants : Recherche de
<script>,javascript:,on*=, etc.
function sanitizeStr(str, maxLen=500){
if(typeof str!=='string')return '';
return str.substring(0,maxLen).replace(/[<>]/g,'');
}
function hasInjection(str){
if(typeof str!=='string')return false;
const patterns=[/<script/i,/javascript:/i,/on\w+=/i,/data:/i];
return patterns.some(p=>p.test(str));
}Lors de l'import d'un fichier JSON :
- Taille maximale : 5 Mo
- Validation du schéma : Vérification de la structure attendue
- Détection d'injections : Analyse du contenu pour détecter les patterns malveillants
function validateJSON(data){
if(!data||typeof data!=='object')throw new Error('Format JSON invalide');
// Vérification de la structure...
// Nettoyage des données...
return data;
}L'application inclut une CSP restrictive :
<meta http-equiv="Content-Security-Policy" content="
default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.tailwindcss.com https://cdn.jsdelivr.net;
style-src 'self' 'unsafe-inline' https://cdn.tailwindcss.com;
img-src 'self' data: blob:;
font-src 'self' https://fonts.gstatic.com;
connect-src 'self';
">Les scripts CDN sont chargés avec des hashes d'intégrité :
<script src="https://cdn.jsdelivr.net/npm/docx@8.5.0/build/index.umd.min.js"
integrity="sha384-..."
crossorigin="anonymous"></script>- Localisation :
localStoragedu navigateur (cléebios5) - Aucune transmission réseau : Les données restent sur la machine de l'utilisateur
- Export : Fichiers JSON téléchargés localement
- Utilisez un navigateur à jour : Chrome, Firefox, Edge dernières versions
- Ne partagez pas vos exports JSON contenant des données sensibles
- Vérifiez la source des fichiers JSON avant de les importer
- Effacez le localStorage si vous utilisez un ordinateur partagé
Si vous découvrez une faille de sécurité :
- Ne la divulguez pas publiquement
- Contactez-moi via [créer une issue privée sur GitHub]
- Fournissez un maximum de détails pour reproduire le problème
- L'application nécessite
'unsafe-inline'et'unsafe-eval'pour Tailwind CSS et les templates - Le localStorage n'est pas chiffré (limitation navigateur)
- Pas d'authentification utilisateur (application locale)
- Ajout de la fonction
esc()pour l'échappement HTML - Validation des imports JSON avec schéma
- Sanitization de toutes les entrées utilisateur
- Détection des patterns d'injection
- Ajout des headers CSP
- Subresource Integrity pour les CDN
Dernière mise à jour : Janvier 2026