题目
一个 DeFi DApp 担心用户通过仿冒域名进入钓鱼站点,或在正确站点上误签错误链、错误合约和无限授权。前端可以增加哪些防线?哪些风险不是 DApp 前端能够彻底解决的?
考察目标
- 是否把域名、chainId、合约地址、spender 和签名内容视为同一条安全链路。
- 是否知道网页永远不应索取助记词或私钥。
- 是否能区分前端可降低的风险与钱包、浏览器、DNS、依赖和用户设备边界。
考察域名、链与合约校验、交易确认信息、授权最小化以及私钥安全边界。
一个 DeFi DApp 担心用户通过仿冒域名进入钓鱼站点,或在正确站点上误签错误链、错误合约和无限授权。前端可以增加哪些防线?哪些风险不是 DApp 前端能够彻底解决的?
前端应从可信部署配置解析 chainId、合约和 spender,写操作前再次校验钱包链与账户,确认页展示完整地址、资产、金额、授权范围和预期结果;默认精确授权,对高风险或未知目标阻止或强提示。站点还应保护域名、发布流程和依赖,并提供官方入口验证方式。但 DApp 无法阻止用户进入完全仿冒的网站,也不能保证被攻陷的钱包或设备安全。助记词和私钥永远不应进入网页,DApp 最多获得钱包明确授予的账户、签名和交易能力。
正常 EIP-1193 Provider 让网页请求账户访问、签名和发送交易,但私钥留在钱包中。DApp 页面不得要求用户输入、上传或“验证”助记词、私钥、Keystore 密码。
“网页拿不到私钥”不等于没有风险。诱导用户签署 Permit、无限 Approve、恶意 Typed Data 或交易,仍可能让攻击者获得资产控制权。因此前端必须让意图可见,钱包确认也不能替代 DApp 自己的参数校验。
前端的目标是减少错误、提高可验证性和限制损失上限,而不是承诺“绝对防钓鱼”。
发现这道题有问题? 反馈此题