产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] AMH登陆界面添加二次验证——让AMH更安全

jump
金牌会员
5521.00 价值分

jump 发表于 2014-04-03 22:44:11
效果如图:


修改AMH面板目录下:
View/login.php--line28后添加:
<dl><dt id="PassDom">动态密码</dt><dd><input type="password" name="password2" class="input_text" value="<?php echo isset($_POST['password2']) ? $_POST['password2'] : '';?>"/ ></dd></dl>
Controller/下添加文件ga.php : [attach]1205[/attach] (作者Phil

Controller/index.php 修改function login为:
function login()
{
$this -> title = '登录 - AMH';
$this -> AmysqlModelBase();
$amh_config = $this -> configs -> get_amh_config();

if (isset($_POST['login']))
{
$login_allow = $this -> indexs -> login_allow($amh_config);

// 允许登录
if($login_allow['status'])
{
$user = $_POST['user'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$VerifyCode = $_POST['VerifyCode'];
if ($amh_config['VerifyCode']['config_value'] == 'on' && strtolower($VerifyCode) != $_SESSION['VerifyCode'])
{
$this -> LoginError = '验证码错误,请重新输入。';
}
else
{
if(empty($user) || empty($password)|| empty($password2))
$this -> LoginError = '请输入用户名与密码。';
else
{
require_once("ga.php");
if(!Google2FA::verify_key('Input your key', $password2)) //Input your key here
{
$_POST['password2'] = '';
$this -> LoginError = '账号或动态密码错误。';
}
else
{
$user_id = $this -> indexs -> logins($user, $password);
if($user_id)
{

$this -> indexs -> login_insert(1, $user);
$_SESSION['amh_user_name'] = $user;
$_SESSION['amh_user_id'] = $user_id;
$_SESSION['amh_config'] = $amh_config;
$_SESSION['amh_token'] = substr(str_shuffle('abcdefghijklmnopqrstuvwxyz'), 0,8);
$token = ($amh_config['OpenCSRF']['config_value'] == 'on') ? '?amh_token=' . $_SESSION['amh_token'] : '';
header('location:./index.php' . $token);
exit();
}
$_POST['password'] = '';
$this -> LoginError = '账号或密码错误,登录失败。(' . ($login_allow['login_error_sum']+1) . '次)';
$this -> login_error_sum = $login_allow['login_error_sum'];
$this -> indexs -> login_insert(0, $user);
}
}
}
}
else
{
$this -> LoginError = '登录出错已有' . $login_allow['login_error_sum'] . '次。当前禁止登录,下次允许登录时间:' . date('Y-m-d H:i:s', $login_allow['allow_time']);
}
}

$this -> amh_config = $amh_config;
$this -> _view('login');
exit();
}
Google2FA::verify_key('Input your key', $password2)中的Input your key替换为你的密钥

密钥要求:
可用字符:234567QWERTYUIOPASDFGHJKLZXCVBNM
至少位数:16位

二维码生成:https://chart.googleapis.com/chart?cht=qr&chs=200x200&choe=UTF-8&chld=L|4&chl=otpauth://totp/idontplaydarts?secret=SECRETVALUEHERE
把SECRETVALUEHERE替换为你的密钥

需要手机安装Google身份验证题或其他支持Google二次验证的软件

欢迎DIY为AMH插件,利用二维码方便添加和管理密钥



附件
ga.zip
2014-04-03 22:44:11 1

ali
银牌会员
3123.65 价值分

看上去很厉害啊,有没一键安装
  支持 (0分)  反对 (0分)
回复  2014-04-03 22:50:24 2

Captain
金牌会员
6928.40 价值分

楼主牛X
  支持 (0分)  反对 (0分)
回复  2014-04-03 22:57:45 3

kkynietg
铁牌会员
182.93 价值分

手机认证都搞出来了 楼主牛叉呀
这么多修改的地方,菜鸟不敢整,怕给整垮了
  支持 (0分)  反对 (0分)
回复  2014-04-04 00:31:38 4

Yusky
金牌会员
11307.70 价值分

引用:
kkynietg 发表于 2014-4-4 00:31
手机认证都搞出来了 楼主牛叉呀
这么多修改的地方,菜鸟不敢整,怕给整垮了 ...


其实没啥的,垮了再覆盖回去就好了
  支持 (0分)  反对 (0分)
回复  2014-04-04 09:53:42 5

Yusky
金牌会员
11307.70 价值分

楼主。我还是木看明白咋用
  支持 (0分)  反对 (0分)
回复  2014-04-04 09:57:48 6

amysql
创始人
16530.81 价值分

很不错的想法,楼主做成插件安装吧。
估计没多久开发者平台也上线了
  支持 (0分)  反对 (0分)
回复  2014-04-04 12:12:14 7

AMH面板 - 好用高效低占用、安全可靠极稳定

jump
金牌会员
5521.00 价值分

引用:
ali 发表于 2014-4-3 22:50
看上去很厉害啊,有没一键安装


模块地址:http://amysql.com/bbs/post-2746-1-1.htm
  支持 (0分)  反对 (0分)
回复  2014-04-05 11:59:31 8

jump
金牌会员
5521.00 价值分

引用:
amysql 发表于 2014-4-4 12:12
很不错的想法,楼主做成插件安装吧。
估计没多久开发者平台也上线了


模块地址:http://amysql.com/bbs/post-2746-1-1.htm
欢迎测试
  支持 (0分)  反对 (0分)
回复  2014-04-05 12:00:55 9

jump
金牌会员
5521.00 价值分

引用:
Yusky 发表于 2014-4-4 09:57
楼主。我还是木看明白咋用


其实主要就是改了登陆的验证逻辑,模块地址:http://amysql.com/bbs/post-2746-1-1.htm
  支持 (0分)  反对 (0分)
回复  2014-04-05 12:02:05 10
 1 2 >  (总2页)
AMH社区列表
用户服务中心