solidité du pragma ^ 0.4.11; vulnarabilité

medvedev1088

solidité du pragma ^ 0.4.11; vulnarabilité


Comme indiqué sur ce site http://fluidai.co/examples/ l’ une des vulnérabilités de Solidity utilise une version ouverte dans pragma:

solidité du pragma ^ 0.4.11;

Vous dites au compilateur Solidity d’utiliser la dernière version de Solidity supérieure à 0.4.11. C’est un problème car vous écrivez du code avec la façon de faire dans une ancienne version. Les nouvelles versions de Solidity déconseillent les fonctions comme throw; et interrompez votre programme si vous les utilisez.

Est-ce vraiment un problème?

Réponses


 medvedev1088

La contrainte de caret dans l’exemple sera satisfaite par toute correspondance de version >=0.4.11 et <0.5.0 http://jubianchi.github.io/semver-check/ . Seules les corrections de bugs seront introduites dans les versions plus récentes avec cette contrainte.

Tout changement de rupture tel que la dépréciation du throw nécessitera la bosse de version mineure ou majeure. L’utilisation du curseur est donc sûre.


 mirg

Je ne pense pas que ce soit un problème comme vous l’avez mentionné, mais c’est une meilleure pratique pour verrouiller la version du compilateur sur celle utilisée pour tester votre contrat afin d’éviter tout type de problème qui pourrait être introduit dans les nouvelles versions. Disons qu’une nouvelle version du compilateur introduit une vulnérabilité, qui pourrait également affecter votre contrat. Sauf si vous développez un contrat qui sera utilisé par d’autres développeurs, il est recommandé de verrouiller la version du compilateur comme spécifié dans les meilleures pratiques de Consensys .

Les contrats doivent être déployés avec la même version du compilateur et les mêmes indicateurs avec lesquels ils ont été testés le plus. Le verrouillage du pragma permet de garantir que les contrats ne sont pas déployés accidentellement en utilisant, par exemple, le dernier compilateur qui peut présenter des risques plus élevés de bogues non découverts. Des contrats peuvent également être déployés par d’autres et le pragma indique la version du compilateur prévue par les auteurs originaux.

d’autres outils de sécurité peuvent également aider à découvrir les vulnérabilités pendant le développement

 

^, 0.4.11;, du, pragma, Solidité, vulnarabilité

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *