本章聚焦 Web3 登录的安全机制与风险防御,涵盖防重放、域名绑定、签名过期、结构化签名与合约钱包验签等。强调统一签名结构、添加有效期与意图提示,并配合后端严格验签与 nonce 去重,构建安全可信的身份认证体系
📚 作者:Henry 🧱 系列:《Web2 到 Web3:登录与身份验证机制全面进化》 · 第 9 篇 👨💻 受众:Web2 & Web3 开发者 / 区块链学习者 👉 系列持续更新中,建议收藏专栏或关注作者
风险类型 | 描述 |
---|---|
🧾 重放攻击 | 签名内容被复用,攻击者冒充登录 |
🕸 钓鱼签名 | 用户在伪造 DApp 上签名,结果被用于恶意操作 |
🚫 空签名 / 弱签名 | message 没有绑定目标信息,可被转发 |
🧯 签名误用 | 将登录签名拿去链上做交易签名,造成误导 |
签名不仅是“认证”动作,也必须具备以下安全属性:
属性 | 描述 |
---|---|
📌 唯一性 | 每次签名内容必须唯一,不能重放 |
📍 上下文性 | 明确用户在哪个 DApp、何时登录 |
⏳ 有效期 | 限制签名时间,防止长时间滥用 |
🔐 不可复用性 | 消息绑定特定域名 / session,不可横向转移使用 |
const messsage = `
example.com wants you to sign in with your Ethereum account...
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!