Niveau - 10 Re-entrancy Flashcards
1
Q
Comment éviter une attaque de réentré quand tu veux permettre à un utilisateur de retirer les fonds qu’il a transférés au contrat.
A
En actualisant son solde AVANT de lui transférer les fonds et en vérifiant qu’il en ait assez :
require(balances[msg.sender] >= amount); balances[msg.sender] -= amount; (bool success,) = payable(msg.sender).call{value:amount}("");
il faut en plus vérifier que success
est égal à true
, mais pour simplifier je l’ai pas mis.