密码、频率限制,以及不需要邮箱的账号
Blocks Beyond The Stars 也有很多孩子在玩。这不仅影响游戏设计,也影响背后的安全工程。举三个例子。
不需要邮箱的账号——是有意为之。在我们这里注册玩家账号,不需要邮箱地址。这不是缺少功能,而是一个决定:我们想尽可能少地收集个人数据,尤其是年幼玩家的。我们没存的东西,就不会丢。(坦白的另一面:因此没有通过邮件“忘记密码”的功能——我们会公开说明这一点。)
世界密码,做对了。给世界设了密码保护的话,密码绝不会以明文保存,而是保存为 PBKDF2 哈希——连我们自己也读不出来。密码会在世界被唤醒之前检查,所以陌生人没法靠单纯的加入尝试去启动别人的世界。而且 15 分钟内失败十次之后,会进入冷却,防止暴力破解。
自动化守卫。我们的代码会经过 CodeQL,也就是 GitHub 的静态安全分析。它还真抓到过我们:一个语言 cookie 最初没有设置 Secure 和 HttpOnly 标志——听起来无伤大雅,却白白多了被攻击的可能。已经修好了,从那以后每条新警报我们都会去看。
贯穿始终的一点:对我们来说,安全不是一个部门,而是一连串小而一致的决定。对一款要交到自己孩子手里的游戏来说,只有这样才让人心安。
留言