Как устранить ошибки безопасности в токенах?(ERC223) - PullRequest
0 голосов
/ 26 ноября 2018

Я написал умный контракт для базового ICO, используя стандарт токена ERC223.Когда я проверил код в securify.ch (https://securify.chainsecurity.com/), он показывает некоторые ошибки безопасности. Вот код, где я получаю эти ошибки

Код:

function transfer(address _to, uint _value, bytes _data) public {
   uint codeLength;
   assembly {
      codeLength := extcodesize(_to)
   }
   balances[msg.sender] = balances[msg.sender].sub(_value);
   balances[_to] = balances[_to].add(_value);       
   if(codeLength>0) {
      ERC223ReceivingContract receiver = ERC223ReceivingContract(_to);
      receiver.tokenFallback(msg.sender, _value, _data);
   }
   emit Transfer(msg.sender, _to, _value, _data);
} 

В строке ниже я получаю сообщения об ошибках.

receiver.tokenFallback(msg.sender, _value, _data); 

Ошибка: этот контракт позволяет произвольному пользователю выполнять ненадежный код от имени контракта, поскольку любой пользователь может передать произвольный адрес * 1011.* и произвольные данные _data, которые предоставляются в качестве аргумента метода. Модуль адресации определяет цель инструкции вызова, а _data определяет функцию, вызываемую в ненадежном контракте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...