首页 / 反诈手册 / 7 大钓鱼套路与防御

钱包钓鱼防御:七种手法与签名检查

钱包弹出“签名”时,先别急着找确认按钮。你可能在登录,也可能在允许别人以后转走代币。最有用的防线,是把这两种请求认出来,并在看不懂时停下。

发布:2026-05-10更新:2026-09-12
04 · 防御 · DEFENSIVE 01 02 03 04 05 06 07 先看请求授出的权限 READ BEFORE SIGNING 7 种手法 · 按权限与诱导方式识别 链上自习室 · 手法拆解与防御清单
封面示意:中间是一枚被挂锁挡住的鱼钩,弧线上七个编号对应下文拆解的七种套路,用于辨认风险类型,不表示损失排名。
恶意签名、授权生效和资产转走,不是同一个时刻。风险取决于你签了什么、请求是否已被执行、授权范围和密钥是否泄露。发现异常后仍应立即检查剩余资产,不要以为“一签就全没了”而放弃处置。

本文为安全教育,不保证能拦截全部攻击。已确认的转账通常无法撤回;未被使用的权限也可能很快被利用。见免责声明。

这些时候,我会先关掉签名窗口

赶截止时间、疲劳、多任务切换,都容易让人忽略账户和权限。这里没有“凌晨成功率高几倍”的统计依据,也不按损失金额给攻击手法排名。下面是可以自己识别的场景:

  • 网页催你“现在不签就失去资格”,却不给足够时间看请求。
  • 你只是想看信息或登录,却出现代币额度、spender 或 NFT operator。
  • 朋友或管理员发来链接,但你没有独立核对项目官网。
  • 钱包弹出的账户、链或资产,与你刚刚准备操作的不一致。

真实活动也可能有截止时间,所以紧迫感不是判定钓鱼的充分证据。但它不能成为跳过核对的理由。错过一次活动,比签下一份解释不了的授权更容易处理。

1 · approve 与 setApprovalForAll

按照 ERC-20 标准,approve 给特定 spender 一种代币的支出额度。授权本身不转移代币,后续转出还需要成功调用转账逻辑。无限额度会扩大该代币的暴露范围,并可能影响以后进入同一地址的余额。

NFT 的 setApprovalForAll 则允许指定 operator 管理对应合约下的 NFT,不能理解成钱包里所有项目的所有资产。两种权限都可能有合法用途,例如兑换或挂单;函数名称本身不是钓鱼证据。

真正要看的是目标链、代币合约、spender/operator 的完整地址、额度和操作目的。项目名字或钱包显示的标签不能代替地址核验。即便是知名协议,也不应默认给无限授权。

如果只是领取分发给你的代币,页面却要求先把无关资产的支出权限交给它,应拒绝并查明理由。不要因为按钮写着 Claim 就忽略签名中的实际动作。

2 · Permit:没有 Gas,也可以有财务后果

ERC-2612允许用签名修改授权。签名交出去时可能尚未上链,持有它的人可在条件满足时提交。要检查域、验证合约、spender、额度、nonce 和 deadline;不能只看网页把它称作“登录验证”。

Permit2 还要区分限时额度与一次性签名转账。Uniswap 的 Permit2 文档说明这两种用途,以及代币对 Permit2 的基础授权。名称相似不代表权限完全相同。

撤销现有 ERC-20 allowance 不会普遍销毁所有未使用的签名。例如普通 ERC-2612 签名仍可能在 nonce 未变化、deadline 未到时重新设置额度。Permit2 的处理也要看权限层与 nonce。已经误签时,先保留请求内容,按具体实现处理,必要时迁走有风险的余额;不要等到每月例行检查。

3 · 地址投毒:历史记录里的“熟悉地址”

攻击者让一个与常用地址前后字符相似的地址出现在历史里。方式可能是小额转账、零值转账或具有误导性的代币记录,并没有一个固定金额。下次从历史复制地址时,就可能选错。

从可信收款方重新取得地址,核对整串地址与目标网络,再保存到地址簿。ENS 等名称也要确认拼写及当前解析地址,不是不核地址的替代品。小额测试成功后,大额发送仍要重新核对,防止第二次粘贴被替换。

4 · 剪贴板劫持:复制正确,粘贴错误

设备上的恶意软件可以替换剪贴板内容。把同一段地址再粘进文本编辑器,并不能证明设备干净;恶意程序可能同时替换两处,也可能只在钱包里动手。

在最终签名界面核对完整地址,有硬件设备时核对设备屏幕。若发现地址自行变化,停止在该设备上处理资金,使用可信的干净环境排查。不能因为使用 macOS 或某款杀毒软件,就把设备视为不会中招。

5 · 社群假链接:管理员也可能失去账户

熟悉的账号、群公告和朋友推荐,都可能成为恶意链接的载体。进入项目时使用事先独立核实的官网,再核对公告内容。搜索广告、回复区链接和私信都不应单独承担身份验证。

即便链接真来自官方账号,也要看钱包里的实际请求。网站或账号被入侵时,“来源看起来对”与“这次签名安全”会分开。只想读一篇公告,不需要先签支出授权。

6 · 浏览器扩展与设备风险

扩展发布账号、软件供应链或设备被攻破,可能导致恶意代码进入你原本信任的软件。安装时从项目官网进入正确的商店页面,核对发布者与扩展身份;下载量高不能单独证明安全。

只保留真正需要的扩展,把资金操作和随手浏览分开。独立浏览器配置能减少扩展混用,但共享同一操作系统时,不构成对系统级恶意软件的隔离。

硬件钱包有助于隔离私钥,仍无法撤回你已授予的权限。攻击者利用旧授权转币时,未必需要你再次按硬件按钮。设备屏幕核对、谨慎授权与密钥备份仍须一起做。

7 · 假客服索取恢复凭据

“帮你同步钱包”“修复节点”“验证身份”“解除冻结”都不需要把助记词或私钥发给客服。不要共享恢复词、屏幕上的备份内容或远程控制权限。

需要支持时,从自己核实的官网发起。若恢复词已发出去,仅换密码或撤销授权不够:同一组种子派生的账户都应视为密钥已暴露,转向干净设备与全新种子的处置方案。钱包被盗后的处理顺序说明如何核对交易、权限与密钥风险。

三种请求示意,不对应历史事件

只看请求内容,不看按钮名字

“查看 NFT”却弹出 setApprovalForAll:它索取的是管理权限,不是阅读权限。没有挂单或管理需求就拒绝,然后核对 operator。

“免费登录”却带代币额度:检查是否为 Permit 或其他带财务权限的签名。零 Gas 只能说明签名当下不由你付上链费用,不能说明没有资产风险。

“客服修复”要求输入恢复词:停止联系。真正需要恢复钱包时,应在核实的钱包软件和可信设备上操作,不是在对方发来的网页上填写。

这些是用于辨认权限的假设情境,不附虚构受害人、金额、日期或部分地址,也不冒充安全机构的复盘。

操作前检查

签名前停一下
  • 从独立核实的入口进入,确认当前账户与网络。
  • 解释得清本次请求为什么需要这份权限。
  • 核完整目标地址、代币、额度和期限;风险提示不是保证。
  • 发送时核对最终地址,不从陌生历史记录复制。
  • 怀疑误签或密钥泄露时立即处理,不等固定检查日期。

定期清理不用的授权有帮助。检查器只覆盖它支持的网络与权限类型,“列表为空”不能证明钱包没有其他风险。

常见问题

硬件钱包能防所有钓鱼吗?

不能。它可以隔离私钥,但仍会执行持有人确认的恶意请求。旧授权被利用时,也可能无需再次按设备按钮。

签了恶意授权,但还没丢币,来得及撤销吗?

可能仍有处理机会,但没有保证。先识别权限、链和受影响资产,按具体机制撤销或迁移。未使用的链下签名可能还需处理 nonce 或其他权限层。

哪些钱包内置了防钓鱼能力?

多款钱包提供风险提醒或交易模拟,但支持范围与版本会变化。没有出现警告不能证明请求安全,应仍核对地址、权限和资产变化。

什么是 Address Poisoning(地址投毒)?

把与可信地址相似的地址放进你的历史记录,诱导你以后复制错。核对整串地址、网络和可信来源,名称解析也须确认。

我从来不点陌生链接,还会被钓鱼吗?

仍有风险。设备恶意软件、被入侵的熟悉网站或账号、剪贴板替换与旧授权都可能造成损失。不点陌生链接只是防线之一。