Que fait convex-security-check ?
Liste de vérification rapide pour un audit de sécurité couvrant l'authentification, l'exposition des fonctions, la validation des arguments, le contrôle d'accès au niveau des lignes et la gestion des variables d'environnement.
Utilisation
Exécutez cette compétence lors de la revue de code ou avant le déploiement pour identifier rapidement les problèmes de sécurité.
Checklist de l'audit de sécurité
-
Authentification
- Vérifiez que toutes les fonctions publiques exigent une authentification si nécessaire.
- Assurez-vous que
auth.getUserIdentity()est utilisé pour restreindre l'accès.
-
Exposition des fonctions
- Examinez les mutations et requêtes exportées pour détecter les fonctions exposées involontairement.
- Utilisez
ensureAuthenticatedou des wrappers personnalisés pour les endpoints sensibles.
-
Validation des arguments
- Validez tous les arguments d'entrée avec zod ou des assertions personnalisées.
- Méfiez-vous des injections SQL ou NoSQL dans les requêtes de base de données.
-
Contrôle d'accès au niveau des lignes (RLS)
- Filtrez les données par utilisateur dans les requêtes (par exemple,
q.filter((r) => r.eq(r.field("userId"), identity.subject))). - Vérifiez que les mutations vérifient la propriété avant les mises à jour ou suppressions.
- Filtrez les données par utilisateur dans les requêtes (par exemple,
-
Variables d'environnement
- Vérifiez que les clés API et secrets ne sont pas codés en dur dans le code source.
- Utilisez
process.envou le gestionnaire de configuration de Convex pour les valeurs sensibles.
Documentation supplémentaire
Consultez la documentation de sécurité de Convex pour des informations détaillées.