没点连接钱包,网站怎么会知道你的地址?eth_accounts 静默读取的三步自查 图 1
没点连接钱包,网站怎么会知道你的地址?eth_accounts 静默读取的三步自查 · 图 1

很多读者都有过这个瞬间:网页上从没点过”连接钱包”,页面右下角却已经显示出了你的地址。这不是钱包被入侵的必然信号,但它值得你花两分钟搞清楚:网页到底是通过哪条通道”看见”你的,和你授权它”使用”你的账户,是两件完全不同的事。

静默读取:eth_accounts 为什么不开弹窗

浏览器钱包与网页之间的通信遵循 EIP-1193 这个提供者接口标准。标准里定义了 eth_accounts 这类查询方法:网页调用它时,钱包可以直接返回”之前已经授权过这个站点”的地址列表,不弹任何确认框。EIP-1193 的规范文本同时写明了立场——出于隐私考虑,作者建议钱包默认不暴露任何账户,让站点通过 eth_requestAccounts 或 wallet_requestPermissions 这类需要用户明确同意的方法来申请账户访问。也就是说,标准把”默认关门、敲门要弹窗”当作推荐做法,但首次授权之后记住了你,再查询就安静地放行。

记住你的那份授权存在哪里

钱包对每个站点维护一份权限记录:这个域名曾经被允许看到哪些账户、能调用哪些能力。之后同一域名再来查询,就直接从权限清单里取结果,这就是”没点连接却显示地址”的最常见成因——你早就在某个时刻给过它(或给过同域名的旧版页面)授权。EIP-2255 给这套机制提供了标准化接口:wallet_getPermissions 可以查询当前已有权限,wallet_requestPermissions 则用于发起新的申请。多数主流钱包在设置里把这份清单做成了可视界面,可以逐项检查甚至清除,操作思路可以顺带读 钱包连接过的网站清单怎么清:断开连接和撤销授权是两件事

三步自查:谁在看、看多少、怎么关

第一步,打开钱包的网站连接或权限管理页面,逐条看已连接的域名:重点核对拼写(仿冒站常在一两个字母上做文章)和你是否还记得交互过。第二步,对认不出来的域名先清除权限,再决定要不要重新交互——清除权限只收回”看见账户”的资格,不撤销链上已签发的代币授权,两者边界见 怎么证明地址是你的?消息签名验证工具的使用与边界,别混为一谈。第三步,观察行为:正规站点在需要账户时应当弹出连接请求让你选择账户;如果一个从未交互的陌生站点直接显示出你的地址并做出”已登录”姿态,要么它有旁路(比如你手动粘贴过地址、登录态里带了地址),要么它只是把上一个页面的缓存画给你看,两种都值得警惕。

边界与误会

有三个常见误会需要澄清。其一,“网站能看到地址”本身不等于危险——地址本来就是半公开的标识,真正要守的是签名和发送交易的权力;但地址暴露会把你的一切链上活动与这个站点身份关联起来,隐私敏感的场景要当回事。其二,无痕窗口不解决这事:只要你在会话里授权过,窗口关闭前该看见还是能看见,它的价值在会话结束后的清空。其三,弹窗少不代表钱包”省事”,反过来一个从不弹连接请求却准确显示地址的钱包,多半在权限模型上做了宽松处理,值得去设置里把默认策略收紧。养成一个习惯即可覆盖大多数风险:在公共站点连钱包前先看权限清单,清完旧的再开新的。

多做一步:给权限清单做季度盘点

权限记录只增不减是多数钱包的默认行为:你访问过的站点会长期留在清单里,即使那站早已关停或被二手转卖换主。比较稳妥的节奏是每季度盘点一次,把清单当一份订阅列表管理:还能说出用途的留下,想不起在哪用过的直接清除——清除的代价几乎为零,下次真要用它弹一次窗就补回来了。盘点时顺手核对域名前缀是否带协议头伪装(用相似字符拼出视觉接近的域名是常见的仿冒手法),以及对同一品牌是否存在多个域名的记录;发现异常记录时先把对应站点的所有授权处理完再清连接,避免留下”看不见但仍在生效”的尾巴。这套动作花不了十分钟,却能把你最大的隐形暴露面——那些早已遗忘但仍能看见你的站点——压到最小。