Инструменты и проверка — страница 3
Remix, Hardhat, Foundry, OpenZeppelin, модульные тесты, fuzzing, инварианты и проверка исходников.
Материалы
- Безопасность Solidity: граница срока действия
Разделяем срок намерения и свежесть источника, задаём точные границы и объясняем отказ при исполнении после дедлайна.
- Безопасность Solidity: псевдослучайность и публичные входы
Отличаем публичное хеширование от случайности, разбираем собственный неправильный draw и границы commit-reveal и независимых источников.
- Безопасность Solidity: зависимость от порядка транзакций
Разбираем два порядка публикации и деактивации, роль nonce отправителя и различие между receipt и актуальным состоянием курса.
- Безопасность Solidity: защита редакционного намерения
Создаём отдельный реестр с ожидаемой ревизией и дедлайном, защищая точное редакционное намерение от применения к новому состоянию.
- Подписи Web3: домен и защита от replay-атаки
Определяем PublishPermit и EIP-712 digest, связывая действие с сетью и экземпляром и отделяя домен от защиты от повторов.
- Безопасность Solidity: Nonce и однократное разрешение
Создаём отдельный подписной реестр с последовательным nonce, ревизией и сроком, разбирая успех, полный откат и повтор разрешения.
- ERC-1271: проверка подписи смарт-аккаунта
Добавляем SignatureChecker и собственную ERC-1271 фикстуру, показывая отзыв разрешения и зависимость проверки от текущего состояния.
- Безопасность Solidity: отказ обслуживания и локальный ресурс
Локализуем отказ получателя через индивидуальный pull-вывод с CEI и guard, отделяя доступность от успешности внешнего вызова.
- Безопасность Solidity: ограниченные циклы и продолжение
Ограничиваем размер batch и работу итерации, сохраняем устойчивый курсор и разбираем конкуренцию и невозможность скрытого удаления элементов.
- Безопасность Solidity: рост постоянного состояния
Коллекции, история и удаление имеют договор хранения
- Обновление Solidity-контракта: совместимость storage
Новый код читает прежние значения по тем же правилам размещения
- Безопасность Solidity: путь первоначального назначения прав
Прокси и реализация защищаются от неверного первоначального вызова
- Безопасность Solidity: полномочия выполняемого кода
Произвольная цель delegatecall не является безопасным плагином
- Безопасность Solidity: пауза, восстановление и сообщение об инциденте
Реагирование ограничивает действия и не стирает публичную историю
- Безопасность Solidity: регрессионный сценарий и отчёт
Причина, предпосылки, исправление и остаточные ограничения задокументированы