SPB Git forge

spb/immbot-ai

Public
1commits 1branches 0releases
1.5 MBsize
maindefault branch
20 days agolast push
TypeScript 98.3% CSS 0.9% Shell 0.7%
1.9 KB

# Sécurité — guide opérationnel

Le modèle de sécurité complet (menaces, décisions, défenses) est dans security-model.md. Ce document résume l'opérationnel.

# Liste de contrôle de mise en production

  • AUTH_SECRET unique généré (openssl rand -hex 32)
  • OPENROUTER_API_KEY présente uniquement dans .env serveur (gitignoré)
  • APP_URL=https://… (active cookies Secure + vérification d'origine)
  • Compte admin initial : mot de passe changé, compte personnel créé, puis DISABLE_INITIAL_ADMIN=true et compte d'amorçage désactivé
  • SIGNUP_ACCESS_CODE défini (inscription réservée aux étudiants du cours)
  • Budgets ajustés (Admin → Paramètres)
  • Sauvegardes planifiées (scripts/backup.sh en cron)
  • HTTPS (ngrok domaine réservé ou reverse-proxy TLS)

# Rappels clés

  • Mots de passe : bcrypt coût 12 ; admin123 refusé comme mot de passe permanent ; 10 caractères min.
  • Sessions : jeton 256 bits, haché en base, httpOnly, SameSite=Lax, 14 jours, révocables.
  • Anti-bruteforce : 8 échecs / 15 min / (IP+identifiant) + journal auth_events.
  • CSRF : vérification Sec-Fetch-Site/Origin sur toutes les mutations.
  • XSS : Markdown rendu sans HTML brut ; en-têtes CSP/nosniff/DENY.
  • Isolation : espaces de connaissances filtrés en SQL sur chaque requête RAG et chaque accès citation ; matériel d'examen dans instructor-private, jamais servi aux étudiants.
  • Injection de prompt : contenus récupérés et fichiers étudiants encadrés comme données ; le serveur ne fournit au modèle que des fragments auxquels l'utilisateur a déjà droit ; citations hors contexte neutralisées.
  • Vie privée : agrégats professeur ≥ 3 étudiants ; conversations étudiantes non consultables (sauf message signalé par l'étudiant).
  • Secrets : jamais journalisés ; messages d'erreur client génériques.