Go-Ethereum

如何保護使用 web3 rpc api 的應用程序?

  • July 21, 2017

當使用 geth 作為客戶端並通過 web 瀏覽器使用 web3(javascript api) 與其互動時,網路中的其他節點可以根據 IP 和客戶端執行的埠訪問客戶端。

如何防止這種情況?

如何將訪問限制為執行客戶端的節點(電腦)而不是同一網路中的其他節點?

流程如下

瀏覽器(使用者)—–>伺服器(執行節點)—–>GETH

第一個連結是http,第二個連結是rpc。http連結使其他電腦可以訪問我要停止的節點。

只有執行 geth 客戶端的節點(電腦)才能訪問 geth 客戶端。

這可以通過引入一個中間件來防止,該中間件將與您的 geth 節點對話,並讓您的 UI 與中間件對話,而不是直接與 geth 節點對話。

我遇到了類似的問題,我通過在 Node.js 中創建中間件來解決它

有了這個,你的 geth 節點就不會暴露給公眾,這讓我們免於一些安全問題。

在此處輸入圖像描述 您可以查看此項目以供參考 - https://github.com/Imaginea/lms

我想rpccorsdomain可能是你正在尋找的東西。

–rpccorsdomain : value 逗號分隔的域列表,從中接受跨源請求(瀏覽器強制)

您可以指定 rpc 域,例如:

geth --rpccorsdomain 'http://localhost:8080', 'http://xxx:8080'

引用自:https://ethereum.stackexchange.com/questions/21569