Кто-нибудь сталкивался со следующим сценарием на Ropsten:
Это случилось со мной и группой участников во время семинара, где за считанные секунды был украден весь наш ETH.
Если вы посмотрите на транзакцию, которая произошла на этом счете в Etherscan, она проходит рывками, переводя на себя небольшое, а иногда и довольно значительное количество ETH.
Хотел узнать, объяснимо ли это. Я понял, что этот же адрес 0x6Ef57BE1168628A2bD6c5788322A41265084408a встречается и на Ринкеби.
Я столкнулся с точно такой же ситуацией в частной сети, когда оставил учетную запись разблокированной на узле с общедоступным IP-адресом, чтобы посмотреть, что произошло - все средства были переведены на тот же адрес, который вы разместили, в течение нескольких секунд после пополнения учетной записи - Я был поражен тем, как быстро была найдена уязвимость, но не удивлен, что ею воспользовались!
Комментарии Smarx указывают на исправление для блокировки доступа к вашему локальному компьютеру: --rpcaddr 127.0.0.1
и удаление --rpccorsdomain "*"
тега позволит хорошо заблокировать все.
Если вы хотите расширить свою точку доступа, чтобы включить запросы web3 (например, разместить интерфейс DApp на сервере) и предположить, что вы хотите, чтобы локальные узлы работали и не использовали такие службы, как infura.io, есть несколько возможных вариантов. обходные пути:
--rpcaddr 127.0.0.1
personal
тег в вашей конфигурации RPC, а затем отправьте web3.personal.unlockAccount(eth.accounts[0], "<password>")
и web3.personal.lockAccount(eth.accounts[0])
инструкции непосредственно до и после любых строк транзакции в вашем коде. Предотвращая простой вывод ваших средств с разблокированной учетной записи, включение personal
тега сопряжено с собственными рисками, поскольку вы оставляете дверь открытой для ряда различных атак.personal
общедоступный IP-адрес, вы оставляете дверь открытой для атак методом грубой силы на пароли вашей учетной записи, поскольку злоумышленник может свободно пытаться разблокировать вашу учетную запись столько, сколько им захочется. Они также могут создать любое количество новых учетных записей на вашем узле и спамить сеть подписанными транзакциями с нулевой стоимостью из этих учетных записей, помимо других возможностей. Я не на 100% понимаю, как Mist работает с разблокировкой учетной записи — я думаю, что он может подписывать транзакции локально, а затем отправлять только подписанную транзакцию на узел, но я могу ошибаться.--rpccorsdomain "*"
, и в этом случае любой веб-сайт, который вы посещаете, может (в javascript) выполнить запрос JSON к локальному хосту на порту RPC и инициировать транзакции и т. д., указав домен CORS с подстановочным знаком в ответе, который вы сообщаете браузер это нормально и что вы одобряете такие действия.
Джексон Нг
пользователь19510
Джексон Нг
пользователь19510
new Web3('http://localhost:8545')
затем вызовweb3.eth.getAccounts
для поиска аккаунтов иweb3.eth.sendTransaction
отправки эфира.пользователь19510
Джексон Нг
Джексон Нг
пользователь19510
--rpcaddr 127.0.0.1
и избавиться от--rpccorsdomain
являются хорошим началом.