给 Typecho 添加双因素认证支持
不得不说双因素认证的确是一种保护账号安全的有效方法,
Google、GitHub和众多网站纷纷支持双因素认证保护账号,
这次我把双因素认证移植到了 typecho 上
首先不得不说下,
typecho 并没有给登录预留插件接口,
只有登录成功和登录失败的处理接口,
登陆界面也没有可以插入的地方,
所以这回直接对 Typecho 源代码下手了
首先下载修改后的 Typecho 分支:
https://github.com/kookxiang/typecho
然后执行 SQL
:
ALTER TABLE `typecho_users` ADD COLUMN `twoFactorAuthKey` varchar(18) NOT NULL;
(本来可以放到 Typecho 更新程序中自动执行的,考虑到日后升级问题,就没有放过去)
登录到后台,点击控制台
个人设置
,
最下方可以看到“双因素认证
”,
有随机生成的一组 Key
,
手动添加到 Google Authenticator
或者 Authy
中就可以使用了。当然也可以通过二维码方式添加,
不过考虑到 Google API 在国内的可用率还是建议开着梯子访问
。
添加到手机之后将当前验证码填写到确认框中点击启用即可启用。此后每次登录后台不论密码是否正确都将要求输入动态密码(增加暴力破解难度)
如需取消,可以登录后台输入动态密码取消。
如果无法登录后台
,可以到数据库中清空对应用户的 twoFactorAuthKey
字段
修改的地方如下:
admin\login.php
admin\profile.php
install\Mysql.php
var\Widget\Users\Profile.php
\var\Widget\Login.php
\var\Widget\GoogleAuthenticator.php