Друзья, возник справедливый вопрос по атаке типа reentrancy и функциям transfer/send - являются ли они гарантией безопасности?
Так вот, reentrancy в теории может быть везде, где есть вызов сторонних контрактов. Желательно априори считать вызов сторонних неизвестных контрактов небезопасным.
Функции transfer/send действительно имеют жёсткий лимит по газу (2300), но и в него тоже можно уместиться и сделать что-нибудь нехорошее. Вообще-то, раньше transfer действительно считалась безопасной функцией (её и ввели для защиты от reentrancy), но только никто не учёл, что стоимости по газу могут меняться. Если раньше "втиснуться" в лимит 2300 особо было нельзя, то теперь вполне можно (стоимости упали). Например, вот тут немного подробнее https://immunebytes.com/transfer-in-solidity-why-you-should-stop-using-it/ Короче, нужно быть осторожными
Post #312
797
- 👍 12