问题描述
我正在尝试通过连接到本地 geth 节点的 web3.py 接口发送交易。阅读了一些关于为什么使用 RPC 不好的评论后,我仍然想知道在端口 8545 关闭时使用 -rpc 选项是否不安全。根据这篇文章 (https://www.zdnet.com/article/hackers-ramp-up-attacks-on-mining-rigs-before-ethereum-price-crashes-into-the-gutter/),该漏洞仅存在于暴露的端口上,但由于我基本上是在与本地网络上的节点通信,所以这应该不是问题,对吧?
解决方法
本文介绍了一种攻击向量,攻击者会在其中寻找打开端口 8545 的机器,并尝试运行(在这些机器上)对他们有利的 JSON-RPC 命令。此攻击仅在以下情况下有效:
- 机器已向公众开放了端口 8545
- 该端口由以太坊节点(而不是某个任意应用程序)使用
- 该节点已启用 JSON-RPC
- 节点尚未启用 JSON-RPC 的用户/密码凭据
因此,只要您的节点只能在本地网络上访问,您就可以远离这种攻击向量(假设没有端口转发等,这实际上允许从公共网络访问您的节点,并且没有攻击者在您的本地网络上)。