Compétences solidity-security
🔒

solidity-security

Sûr

Développement sécurisé de smart contracts

Également disponible depuis: wshobson

Prévenez les vulnérabilités coûteuses dans votre code Solidity. Cette compétence fournit des modèles de sécurité éprouvés, des listes de contrôle pour la détection des vulnérabilités et des techniques d'optimisation du gas utilisées par les auditeurs professionnels pour protéger les protocoles DeFi et les smart contracts.

Prend en charge: Claude Codex Code(CC)
🥉 75 Bronze
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "solidity-security". Is this withdraw function secure? function withdraw() public { uint256 amount = balances[msg.sender]; payable(msg.sender).transfer(amount); balances[msg.sender] = 0; }

Résultat attendu:

Cette fonction est VULNÉRABLE à la réentrance. L'appel externe se produit avant la mise à jour de l'état. Un attaquant peut appeler récursivement withdraw avant que le solde ne soit mis à zéro. CORRECTION : Appliquez le modèle Checks-Effects-Interactions : d'abord définissez balances[msg.sender] = 0, puis effectuez l'appel externe. Alternativement, utilisez ReentrancyGuard d'OpenZeppelin avec le modificateur nonReentrant.

Utilisation de "solidity-security". How do I add access control to my admin-only function?

Résultat attendu:

Importez le contrat Ownable d'OpenZeppelin et utilisez le modificateur onlyOwner. Alternativement, implémentez un contrôle d'accès basé sur les rôles avec un mapping et un modificateur personnalisé. Assurez-vous que la fonction valide que msg.sender est autorisé avant d'exécuter des opérations sensibles.

Audit de sécurité

Sûr
v1 • 2/25/2026

All 72 static analysis findings are false positives. The detected patterns (shell backticks, dynamic requires, weak cryptography) exist within markdown code blocks demonstrating Solidity security concepts and JavaScript testing examples. This skill contains only educational documentation with no executable code. The skill legitimately teaches smart contract security best practices including reentrancy prevention, access control, and gas optimization.

2
Fichiers analysés
562
Lignes analysées
0
résultats
1
Total des audits
Aucun problème de sécurité trouvé
Audité par: claude

Score de qualité

38
Architecture
100
Maintenabilité
87
Contenu
50
Communauté
100
Sécurité
100
Conformité aux spécifications

Ce que vous pouvez construire

Construction d'un protocole DeFi

Implémentez des contrats de prêt, d'emprunt ou d'échange sécurisés avec des protections de réentrance et un contrôle d'accès appropriés.

Audit de smart contracts

Examinez les contrats existants pour détecter les vulnérabilités avant le déploiement sur le mainnet ou l'intégration.

Apprentissage de la sécurité Solidity

Comprenez les vecteurs d'attaque courants et les modèles de mitigation éprouvés pour un développement sécurisé.

Essayez ces prompts

Vérification de sécurité de base
Review my Solidity contract for common vulnerabilities including reentrancy, overflow, and access control issues. Point out any insecure patterns and suggest fixes.
Implémenter la protection contre la réentrance
Help me add reentrancy protection to my withdraw function. Show me both the Checks-Effects-Interactions pattern and the OpenZeppelin ReentrancyGuard approach.
Optimisation du gas
Analyze my contract for gas optimization opportunities. Focus on storage packing, calldata usage, and reducing redundant operations while maintaining security.
Préparation à l'audit
Review my contract for audit readiness. Check for NatSpec documentation, input validation, emergency stop mechanisms, and proper event emission. Create a security checklist.

Bonnes pratiques

  • Appliquez toujours le modèle Checks-Effects-Interactions : validez les entrées, mettez à jour l'état, puis effectuez les appels externes
  • Utilisez les contrats audités d'OpenZeppelin pour ReentrancyGuard, Ownable et Pausable au lieu d'implémentations personnalisées
  • Activez Solidity 0.8+ pour la protection intégrée contre les débordements ou utilisez la bibliothèque SafeMath pour les versions antérieures

Éviter

  • N'utilisez jamais tx.origin pour l'authentification - il peut être compromis par des attaques de phishing via des contrats malveillants
  • Évitez les appels externes avant la mise à jour de l'état du contrat, car cela permet les attaques par réentrance
  • N'utilisez pas de pragma flottant - épinglez toujours à une version spécifique de Solidity pour garantir une compilation déterministe

Foire aux questions

Quelle est la vulnérabilité de smart contract la plus courante ?
La réentrance est la vulnérabilité la plus courante et la plus critique. Elle se produit lorsque des appels externes sont effectués avant les mises à jour d'état, permettant aux attaquants d'appeler récursivement des fonctions et de drainer les fonds. Utilisez toujours le modèle Checks-Effects-Interactions ou ReentrancyGuard d'OpenZeppelin.
Ai-je besoin de SafeMath avec Solidity 0.8+ ?
Non. Solidity 0.8 et les versions ultérieures incluent des vérifications intégrées de débordement et de dépassement qui annulent automatiquement les transactions en cas d'erreurs arithmétiques. SafeMath n'est nécessaire que pour les contrats utilisant des versions de Solidity antérieures à 0.8.
Dois-je utiliser msg.sender ou tx.origin pour l'authentification ?
Utilisez toujours msg.sender pour l'authentification. Le tx.origin représente l'expéditeur original de la transaction et peut être exploité via des attaques de phishing. N'utilisez jamais tx.origin pour les vérifications d'autorisation.
Quelle est la différence entre les modèles de paiement pull et push ?
Les paiements push impliquent que le contrat envoie des fonds aux utilisateurs, ce qui peut échouer si les utilisateurs ont des problèmes de fallback. Les paiements pull permettent aux utilisateurs de retirer leurs propres fonds, ce qui est plus sûr car l'utilisateur contrôle le timing. Préférez pull à push pour les distributions en lot.
Comment préparer mon contrat pour un audit professionnel ?
Ajoutez une documentation NatSpec complète, implémentez la validation des entrées, utilisez des modificateurs de contrôle d'accès, émettez des événements pour les changements d'état, écrivez des tests unitaires couvrant les cas limites et créez une liste de contrôle de sécurité. Assurez-vous qu'il n'y a pas d'avertissements du compilateur et utilisez des versions de pragma fixes.
Cette compétence peut-elle remplacer un audit de sécurité professionnel ?
Non. Cette compétence aide à identifier les vulnérabilités courantes et à implémenter les meilleures pratiques, mais elle ne remplace pas un audit professionnel. Les contrats à haute valeur, les protocoles DeFi et les systèmes de production nécessitent une vérification formelle et une revue humaine par des experts en sécurité.

Détails du développeur

Structure de fichiers