-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
Comment sécuriser votre contrat intelligent contre les attaques de réentrance ?
Reentrancy vulnerabilities arise when external calls precede state updates, enabling malicious recursive calls—mitigated by Checks-Effects-Interactions, ReentrancyGuard, and cautious gas limits.
Jan 23, 2026 at 10:39 am
Comprendre les vulnérabilités de réentrée
1. Les attaques de réentrance exploitent la capacité des contrats externes à rappeler le contrat vulnérable avant la fin de l'exécution initiale de la fonction.
2. Cela se produit lorsque les changements d'état ne sont pas finalisés avant les appels externes, permettant à un code malveillant de manipuler les soldes ou les indicateurs à plusieurs reprises.
3. Le tristement célèbre piratage de DAO en 2016 a démontré comment un modèle de retrait récursif a drainé plus de 60 millions de dollars d'ETH.
4. De telles vulnérabilités se développent dans les fonctions gérant les transferts, les retraits ou toute logique impliquant un appel externe suivi d'une mise à jour de l'état .
5. Les versions Solidity antérieures à la 0.8.0 ne disposaient pas de protections de réentrée intégrées, ce qui rendait la protection manuelle essentielle pour les déploiements existants.
Implémentation du modèle Contrôles-Effets-Interactions
1. Cette discipline architecturale exige que toutes les modifications d'état interne se produisent avant toute interaction externe.
2. Par exemple, la mise à jour du solde d'un utilisateur doit précéder un transfert d'appel ou un appel sur une autre adresse.
3. La violation de cet ordre ouvre la porte aux attaquants pour détourner le flux de contrôle et accéder à nouveau à la même fonction.
4. Même avec un classement approprié, les développeurs doivent vérifier qu'aucune fonction intermédiaire, comme des émetteurs ou des modificateurs d'événements, ne déclenche des appels externes involontaires.
5. Des outils tels que Slither et MythX peuvent détecter les écarts par rapport à ce modèle lors de l'analyse statique du bytecode et de la source.
Utilisation du modificateur ReentrancyGuard
1. ReentrancyGuard d'OpenZeppelin est un utilitaire largement audité qui verrouille une fonction à l'aide d'un indicateur booléen.
2. Le modificateur définit _status sur _ENTERED avant l'exécution et le réinitialise sur _NOT_ENTERED une fois terminé.
3. Tout appel imbriqué tentant de réintégrer la même fonction protégée sera annulé en raison du verrouillage actif.
4. Cela n’empêche pas la réentrance inter-fonctions à moins que tous les points d’entrée sensibles partagent la même instance de garde.
5. Les développeurs doivent s'assurer que la hiérarchie d'héritage initialise correctement l'état de garde et évite d'observer la variable interne.
Limitation des gaz comme stratégie d’atténuation
1. Limiter explicitement le gaz transféré dans les appels de bas niveau comme call.gas(2300) empêche les contrats du destinataire d'exécuter une logique complexe.
2. Cette technique imite la rémunération du gaz d'envoi et de transfert , qui limite l'exécution à 2 300 gaz.
3. Cependant, il est fragile de se fier uniquement aux limites de gaz : les futures mises à niveau de l'EVM ou les opcodes personnalisés peuvent modifier les coûts du gaz de manière imprévisible.
4. Cela rompt également la compatibilité avec les contrats exigeant plus qu'un minimum de gaz pour la logique de repli, tels que ceux effectuant l'exploitation forestière ou le rééquilibrage.
5. Les mesures d’atténuation basées sur le gaz devraient compléter, et non remplacer, les mesures de protection structurelles telles que les gardes de réentrée et les ordres de l’État.
Foire aux questions
Q : La réentrance peut-elle se produire dans des fonctions de vue ou pures ? R : Non. Ces fonctions ne peuvent pas exécuter d'opérations de changement d'état ou d'appels externes, éliminant ainsi la possibilité d'interférences récursives.
Q : L’utilisation de déléguécall empêche-t-elle la réentrée ? R : Pas intrinsèquement. Bien que déléguécall préserve le contexte de stockage de l'appelant, il ne bloque pas les modèles réentrants si la logique cible contient des interactions externes non protégées.
Q : La fonction de repli payable est-elle toujours dangereuse ? R : Seulement s’il effectue des mises à jour d’état ou des appels externes sans protection contre la réentrance. Une solution de repli minimale acceptant l’ETH sans effets secondaires présente un risque négligeable.
Q : Les modèles de proxy évolutifs augmentent-ils l'exposition à la réentrance ? R : Oui : si le contrat de mise en œuvre ne dispose pas de protections appropriées et que le proxy transfère les appels sans validation, les attaquants peuvent exploiter simultanément la logique du proxy et la logique métier.
Clause de non-responsabilité:info@kdj.com
Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!
Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.
-
RAIN Échangez maintenant$0.007852
113.00%
-
PIPPIN Échangez maintenant$0.06097
51.96%
-
PARTI Échangez maintenant$0.1396
42.04%
-
WAVES Échangez maintenant$0.9141
41.69%
-
ARC Échangez maintenant$0.04302
35.73%
-
HONEY Échangez maintenant$0.01029
21.80%
- Choix du président de la Fed par Trump : Kevin Warsh intensifie ses efforts, Wall Street surveille
- 2026-01-30 22:10:06
- Le rêve d'or numérique de Bitcoin testé alors que les changements du marché et les nouvelles crypto-monnaies prennent feu
- 2026-01-30 22:10:06
- Binance double sa mise : le fonds SAFU se tourne entièrement vers Bitcoin, signalant une profonde conviction
- 2026-01-30 22:05:01
- Les résultats du quatrième trimestre de Chevron montrent un BPA supérieur malgré un déficit de revenus et les yeux rivés sur la croissance future
- 2026-01-30 22:05:01
- Le méga mouvement de Bitcoin en 2026 : naviguer dans la volatilité vers une nouvelle ère
- 2026-01-30 22:00:01
- Perspectives de prix de Cardano (ADA) : naviguer dans les tranchées d’un potentiel marché baissier en 2026
- 2026-01-30 22:00:01
Connaissances connexes
Comment exécuter un message inter-chaînes avec un contrat LayerZero ?
Jan 18,2026 at 01:19pm
Comprendre l'architecture LayerZero 1. LayerZero fonctionne comme un protocole d'interopérabilité léger et sans autorisation qui permet la com...
Comment mettre en œuvre EIP-712 pour la vérification sécurisée des signatures ?
Jan 20,2026 at 10:20pm
Présentation de l'EIP-712 et objectif principal 1. EIP-712 définit une norme pour le hachage et la signature de données structurées typées dans le...
Comment se qualifier pour les parachutages en interagissant avec de nouveaux contrats ?
Jan 24,2026 at 09:00pm
Comprendre les exigences d'interaction contractuelle 1. La plupart des campagnes de largage nécessitent une interaction directe avec des contrats ...
Comment surveiller un contrat intelligent pour les alertes de sécurité ?
Jan 21,2026 at 07:59am
Outils de surveillance en chaîne 1. Les explorateurs de blockchain comme Etherscan et Blockscout permettent une inspection en temps réel du bytecode d...
Comment mettre en place et financer un contrat de paiements automatisés ?
Jan 26,2026 at 08:59am
Comprendre le déploiement de contrats intelligents 1. Les développeurs doivent sélectionner une plate-forme blockchain compatible telle que Ethereum, ...
Comment utiliser les contrats OpenZeppelin pour créer des dApps sécurisées ?
Jan 18,2026 at 11:19am
Comprendre les principes fondamentaux des contrats OpenZeppelin 1. OpenZeppelin Contracts est une bibliothèque de composants de contrats intelligents ...
Comment exécuter un message inter-chaînes avec un contrat LayerZero ?
Jan 18,2026 at 01:19pm
Comprendre l'architecture LayerZero 1. LayerZero fonctionne comme un protocole d'interopérabilité léger et sans autorisation qui permet la com...
Comment mettre en œuvre EIP-712 pour la vérification sécurisée des signatures ?
Jan 20,2026 at 10:20pm
Présentation de l'EIP-712 et objectif principal 1. EIP-712 définit une norme pour le hachage et la signature de données structurées typées dans le...
Comment se qualifier pour les parachutages en interagissant avec de nouveaux contrats ?
Jan 24,2026 at 09:00pm
Comprendre les exigences d'interaction contractuelle 1. La plupart des campagnes de largage nécessitent une interaction directe avec des contrats ...
Comment surveiller un contrat intelligent pour les alertes de sécurité ?
Jan 21,2026 at 07:59am
Outils de surveillance en chaîne 1. Les explorateurs de blockchain comme Etherscan et Blockscout permettent une inspection en temps réel du bytecode d...
Comment mettre en place et financer un contrat de paiements automatisés ?
Jan 26,2026 at 08:59am
Comprendre le déploiement de contrats intelligents 1. Les développeurs doivent sélectionner une plate-forme blockchain compatible telle que Ethereum, ...
Comment utiliser les contrats OpenZeppelin pour créer des dApps sécurisées ?
Jan 18,2026 at 11:19am
Comprendre les principes fondamentaux des contrats OpenZeppelin 1. OpenZeppelin Contracts est une bibliothèque de composants de contrats intelligents ...
Voir tous les articles














