老程序员教你怎么给网站添加谷歌两步验证的功能

2024-10-11 23:28:58

由于现在的大量网站都要求用户注册才能使用完成的功能,而且很多用户都习惯使用相同的密码作为网站的账号登录密码,这样很容易给不法份子提供了机会。只要破解了某一个技术能力比较弱的网站,将其数据库拖库到本地,暴力破解密码就可以拿到明文的密码。然后写个脚本就可以到各大论坛网站上进行撞库登录。容易给用户带来极大的安全隐患。

工具/原料

微信小程序版二次验证器

准备工作,生成secretkey并添加到小程序二次验证器里面

1、首先我们需要使用php代码来生成一个secretkey。这个key是由大小写组成32位的随机字符串。<?php function generateRandomClue($l髫潋啜缅ength = 32) { $b32 = "234567QWERTYUIOPASDFGHJKLZXCVBNM"; $s = ""; for ($i = 0; $i < $length; $i++){ $s .= $b32[rand(0,31)]; } return $s; } echo generateRandomClue()."\n";?>上面是使用php编写来用生成生成32位key的代码,我们将下面代码保存到为get-secretkey.php作者的这个脚本保存的完整路径是/Users/wuciyou/WebSite/web/loc/php-totp-demo/get-secretkey.php用户可以保存在任何方便你找到的目录下。然后通过php命令执行get-secretkey.php代码phpget-secretkey.php最后我们就会得到一个32位随机字符串GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ,如下图所示

老程序员教你怎么给网站添加谷歌两步验证的功能

2、将拿到32位的secretkey字符串添加到实现了TOTP算法的应用程序里面。市场上有很多类型的二次验证的app。在这里我们推荐大家使用微信小程序版的验证器。一、因为现在每个人手机上都安装了微信。二、省去了大家下载的时间,还能节省手机内存。步骤打开微信》点击底部发现》小程序》在小程序页面上方点击搜索框然后输入二次验证器如下图所示

老程序员教你怎么给网站添加谷歌两步验证的功能

4、创建好手势后,进入到小程序里面的时候,是一个空白页面,因为我们还没有添加任何的secretkey到小程序里面。点击页面下的添加按钮,然后选择手动添加

老程序员教你怎么给网站添加谷歌两步验证的功能

6、添加成功后,小程序就会每隔30s刷新一次这个动态口令。以后用户每次登录网站的时候,只需要打开小程序拿到最新的动态口令,然后输入在登录的表单里。就可以完成登录操作了

老程序员教你怎么给网站添加谷歌两步验证的功能

2、然后创建登录验证check.php<?php header('Content-Type:applicaion/json'); require_once(dirname(__FILE__).'/rfc6238/rfc6238.php'); const username = 'admin'; const password = 'admin123'; // 这个32位的随机secretkey是在第一步由系统提前生成。并告知用户,建议只给用户展示一次 // 系统应保证每个用户的key都是唯一的 const secretkey = 'GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ'; if(!(isset($_POST['username']) && $_POST['username'] == username)){ echo json_encode(['code' => 'error','msg' => '账号错误']); return ; } if(!(isset($_POST['password']) && $_POST['password'] == password)){ echo json_encode(['code' => 'error','msg' => '密码错误']); return ; } if (TokenAuth6238::verify(secretkey,$_POST['code'])) { echo json_encode(['code' => 'success','msg' => '登录成功']); return ; } else { echo json_encode(['code' => 'error','msg' => '动态口令验证失败']); return ; } ?>

老程序员教你怎么给网站添加谷歌两步验证的功能
猜你喜欢