← 钱包授权一次就可能被转走资产:Web3钓鱼签名怎么防 · 目录
第 1 / 10 章

先分清连接、授权、签名和转账

连接钱包通常只是让网页看到获准的公开地址,并向钱包发起请求;真正决定风险的是随后确认的消息。链上 approval 会建立代币额度,Permit 类签名可能被第三方稍后提交,直接转账或恶意合约调用则可能当场造成资产流出。按钮写着“登录”“验证”还是“领取”,不能代替对实际权限的判断。

四种操作的风险边界

| 项目 | 操作 | 实际含义与风险 | |---|---|---| | 连接钱包 | 授权网页读取公开地址等信息 | 单纯连接通常不能转币,但会为后续诱导签名创造入口 | | 代币授权 | 在特定链上给指定 spender 某种代币额度 | 授权可被后续调用;断开网页不会自动清除 | | 链下签名 | 可能用于登录,也可能是 Permit、Permit2 或市场订单 | 当下没有交易哈希或 gas,也可能被延后使用 | | 链上交易 | 会改变链上状态,包括转账、授权和合约调用 | 确认恶意调用后,资产可能立即流出 |

权限为何可以被稍后使用

ERC-20 标准允许指定 spender 通过 transferFrom 在额度内动用代币。MetaMask 的签名钓鱼说明指出,攻击者还可能先取得链下签名,再选择时机使用。Uniswap 官方资料则说明,Permit2 需要先有代币对 Permit2 的基础授权,之后具体 spender 可依据签名、额度和期限获得权限。

来源:ERC-20 标准、MetaMask Help Center、Uniswap Permit2 官方说明