站点后台曾被人试出密码进入,管理员要求增加一层校验。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

import pyotp
totp = pyotp.TOTP(secret)
if not totp.verify(code, valid_window=1): deny()

仅靠单一密码认证,泄露后没有任何二次拦截。这一点先确认清楚,后面就不用反复试。

「后台两步验证」这类改动最怕改一半,回滚脚本先准备好,再动生产。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。

监控和日志的时间要对上,时区不一致会多绕很大一圈。

具体做法是,启用基于时间的一次性验证码;为管理员强制绑定;保留备用恢复码。

改完照着核一遍,登录需要验证码,错误验证码无法进入后台。

作者 9823189