209 похожих чатов

Опасно использовать tx.origin как раз для описанной в статье цели

- для проверки предоставления доступа к действию, на основе сравнения tx.origin с ранее сохранённым значением (например с адресом владельца контракта).

Допустим, юзер Юлий создал контракт "РогаКопыта", в котором сохранился owner = адрес Юлия, а в функции "отправитьВсёТуда(address)" есть такая проверка tx.origin == owner

Через неделю Юлий заходит на новый модный вебсайт "криптоёжики точка всё" и через веб-интерфейс вызывает у некоего контракта "Криптоёжики" функцию "погладьЁжика()".

А контракт "Криптоёжики" написан злодеем Зигфридом, читавшим контракт РогаКопыта, и в функции погладьЁжика() на самом деле идёт обращение к контракту РогаКопыта и вызов отправитьВсёТуда(адрес_Зигфрида).

tx.origin у нас кто? Юлий. Проверка проходит. отправитьВсёТуда(адрес_Зигфрида) проходит. ха-ха! =)

2 ответов

14 просмотров

о, супер!!! понятное объяснение)))

#wiki

Похожие вопросы

Обсуждают сегодня

Карта сайта