Web3js

在您的網站上使用 web3.js/Metamask 時 - 您如何信任來自使用者的數據?

  • January 15, 2022

因此,假設您的使用者發送交易,您的腳本獲取收據 (getTransactionReceipt),檢查一切是否正常,然後執行某些操作。人們不能在開發者控制台中重寫你的腳本並發送假數據嗎?

例如:Bob 需要支付 1 ETH。他不能只是偽造他的地址(已經向您支付了相同金額的人)或使用某人的交易ID,或者當您的JS最終將數據發送到您的伺服器以重新檢查他可以發送虛假地址/交易ID的交易時?

使用者將能夠出於只讀目的偽造他們的公共地址(請參閱 impersonator),但永遠無法偽造消息或交易的簽名。

我實際上不確定您的案例是什麼,但是您可以通過一個涉及非對稱加密的簡單實用程序將地址安全地綁定到某個使用者。如果您有前端 + 後端架構,並且您需要確保使用者可以訪問某個地址(公鑰),請讓他們簽署消息(前端)。僅當使用者有權訪問該帳戶的私鑰並因此擁有它時,此消息(後端)的解密才會成功。

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