использовать tx.origin. Кто-то может объяснить? Может, на каком-то дургом примере.
Опасно использовать tx.origin как раз для описанной в статье цели - для проверки предоставления доступа к действию, на основе сравнения tx.origin с ранее сохранённым значением (например с адресом владельца контракта). Допустим, юзер Юлий создал контракт "РогаКопыта", в котором сохранился owner = адрес Юлия, а в функции "отправитьВсёТуда(address)" есть такая проверка tx.origin == owner Через неделю Юлий заходит на новый модный вебсайт "криптоёжики точка всё" и через веб-интерфейс вызывает у некоего контракта "Криптоёжики" функцию "погладьЁжика()". А контракт "Криптоёжики" написан злодеем Зигфридом, читавшим контракт РогаКопыта, и в функции погладьЁжика() на самом деле идёт обращение к контракту РогаКопыта и вызов отправитьВсёТуда(адрес_Зигфрида). tx.origin у нас кто? Юлий. Проверка проходит. отправитьВсёТуда(адрес_Зигфрида) проходит. ха-ха! =)
Обсуждают сегодня