Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://docs.replit.com/llms.txt

Use this file to discover all available pages before exploring further.

Ce guide fournit une liste de contrôle de sécurité complète pour vous assurer que vos applications vibe codées respectent les meilleures pratiques de sécurité. Bien que Replit fournisse de nombreuses fonctionnalités de sécurité prêtes à l’emploi, il est important de comprendre et d’implémenter des mesures de sécurité supplémentaires adaptées aux besoins spécifiques de votre application.

Prérequis

  • Un compte Replit
  • Compréhension de base de votre langage de programmation préféré
  • Familiarité avec l’Éditeur de projet
  • Une application que vous créez sur Replit

Sécurité du front-end

Replit utilise HTTPS par défaut pour toutes les applications. Vous n’avez donc pas à vous en soucier !
Validez et assainissez toujours les entrées utilisateur pour prévenir les attaques de script intersite (XSS) :
// Mauvais : Utilisation directe des entrées utilisateur
element.innerHTML = userInput;

// Bon : Assainir les entrées avant utilisation
import { sanitize } from 'some-sanitizer-library';
element.innerHTML = sanitize(userInput);
Passez en mode Lite et demandez à Agent :
Aide-moi à valider et assainir les entrées pour me protéger contre les attaques XSS
Utilisez les Secrets Replit pour stocker les informations sensibles comme les clés API.Assurez-vous de ne pas transmettre les secrets côté client ou de les placer aux endroits suivants :
  • Stockage local
  • Stockage de session
  • JavaScript côté client
  • Cookies sans attributs de sécurité appropriés
Passez en mode Lite et demandez à Agent :
Aide-moi à garder les données sensibles hors du navigateur. Est-ce que je fais ça correctement ?
Implémentez la protection contre la falsification de requête intersite (CSRF) pour les formulaires :
// Exemple d'implémentation de token CSRF
const csrfToken = generateToken();
session.csrfToken = csrfToken;
Passez en mode Lite et demandez à Agent :
Aide-moi à implémenter des tokens CSRF pour les formulaires

Sécurité du back-end

Lors de l’implémentation de l’authentification :
  • Utilisez Replit Auth quand c’est possible
  • Si vous créez une auth personnalisée, utilisez des bibliothèques établies
  • Ne stockez jamais les mots de passe en texte clair
Demandez à Agent :
Aide-moi à implémenter l'authentification pour mon application avec Replit Auth
Vérifiez toujours les permissions avant d’effectuer des actions :
// Exemple de vérification d'autorisation
if (!user.canAccess(resource)) {
  return res.status(403).send('Accès refusé');
}
Demandez à Agent :
Aide-moi à implémenter des vérifications d'autorisation pour mon application
Sécurisez vos points de terminaison API :
  • Ajoutez l’authentification aux points de terminaison sensibles
  • Implémentez des paramètres CORS appropriés
  • Envisagez la limitation du débit
Passez en mode Lite et demandez à Agent :
Comment puis-je authentifier correctement les points de terminaison dans mon application ?
Agent utilise les ORM par défaut, ce qui aide à prévenir l’injection SQL. Si vous rédigez des requêtes de base de données personnalisées :
// Mauvais : Concaténation de chaînes dans les requêtes
db.query(`SELECT * FROM users WHERE username = '${username}'`);

// Bon : Requêtes paramétrées avec ORM
db.query('SELECT * FROM users WHERE username = ?', [username]);
Ajoutez des en-têtes de sécurité importants à votre application :
<!-- Dans index.html ou via votre back-end -->
<meta http-equiv="X-Frame-Options" content="DENY">
<meta http-equiv="X-Content-Type-Options" content="nosniff">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
Vous pouvez analyser votre site sur securityheaders.com pour obtenir des recommandations.Passez en mode Lite et demandez à Agent :
Peux-tu ajouter les en-têtes de sécurité à mon application ?

Pratiques de sécurité continues

Vérifiez régulièrement les packages obsolètes qui pourraient avoir des vulnérabilités :
npm audit
N’exposez pas d’informations sensibles dans les messages d’erreur :
// Mauvais : Exposition de détails sensibles
catch (err) {
  res.status(500).send(`Erreur de base de données : ${err.message}`);
}

// Bon : Message d'erreur générique
catch (err) {
  console.error(err); // Journaliser en interne
  res.status(500).send('Une erreur s\'est produite');
}
Demandez à Agent :
Aide-moi à implémenter une gestion appropriée des erreurs pour mon application
Lors de l’utilisation des cookies :
  • Définissez le flag HttpOnly pour empêcher l’accès JavaScript
  • Utilisez l’attribut Secure pour exiger HTTPS
  • Implémentez l’attribut SameSite pour prévenir le CSRF
Demandez à Agent :
Aide-moi à sécuriser mes cookies pour mon application
Si votre application permet les téléchargements de fichiers :
  • Limitez les types et tailles de fichiers
  • Analysez les logiciels malveillants si possible
  • Stockez les fichiers dans le stockage d’objets de Replit
  • Générez de nouveaux noms de fichiers plutôt que d’utiliser ceux fournis par l’utilisateur
Demandez à Agent :
Aide-moi à sécuriser les téléchargements de fichiers pour mon application
Implémentez la limitation du débit pour les points de terminaison API, en particulier ceux liés à l’authentification :
// Exemple de middleware de limitation du débit
const rateLimit = require('express-rate-limit');

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 minutes
  max: 100 // limite chaque IP à 100 requêtes par windowMs
});

app.use('/api/', limiter);
Demandez à Agent :
Aide-moi à implémenter la limitation du débit pour mon application

Liste de contrôle

Voici ce qui précède sous forme de liste de contrôle pour vous aider à maintenir vos pratiques de sécurité.

Sécurité du front-end

Mesure de sécuritéDescription
Utiliser HTTPS partoutPrévient les écoutes de base et les attaques de l’homme du milieu
Validation et assainissement des entréesPrévient les attaques XSS en validant toutes les entrées utilisateur
Ne pas stocker de données sensibles dans le navigateurPas de secrets dans le stockage local ou le code côté client
Protection CSRFImplémenter des tokens anti-CSRF pour les formulaires et les requêtes changeant d’état
Ne jamais exposer les clés API dans le front-endLes identifiants d’API doivent toujours rester côté serveur

Sécurité du back-end

Mesure de sécuritéDescription
Fondamentaux de l’authentificationUtiliser des bibliothèques établies, stockage approprié des mots de passe (hachage+salage)
Vérifications d’autorisationVérifier toujours les permissions avant d’effectuer des actions
Protection des points de terminaison APIImplémenter une authentification appropriée pour chaque point de terminaison API
Prévention de l’injection SQLUtiliser des requêtes paramétrées ou des ORM, jamais du SQL brut avec des entrées utilisateur
En-têtes de sécurité de baseImplémenter X-Frame-Options, X-Content-Type-Options et HSTS
Protection DDoSUtiliser un CDN ou un service cloud avec des capacités d’atténuation DDoS intégrées

Habitudes de sécurité pratiques

Mesure de sécuritéDescription
Garder les dépendances à jourLa plupart des vulnérabilités proviennent de bibliothèques obsolètes
Gestion appropriée des erreursNe pas exposer de détails sensibles dans les messages d’erreur
Cookies sécurisésDéfinir les attributs HttpOnly, Secure et SameSite
Sécurité des téléchargements de fichiersValider les types, tailles de fichiers et analyser le contenu malveillant
Limitation du débitImplémenter sur tous les points de terminaison API, en particulier ceux liés à l’authentification