在 WordPress 默认的登录页添加验证码

发布于 2018-07-26 22:03:40 字数 2155 浏览 2585 评论 0

在 WordPress 默认的登录页添加验证码源代码,虽然 WordPress 也比较安全了,在国内基本在登录框里面都加入了验证码,方式机器人自动登陆然后发布垃圾内容,这段代码用到了两个滤镜函数。将以下代码加入到 functions.php 文件中即可。

添加验证码输入框

//登录页添加验证码输入框
function v_login(){
?>
    <p><label for="vcode">验证码<input type="text" name="vcode" value="" size="20" class="input" tabindex="20" /></label></p>
    <p>请输入下面图片上的字符,不区分大小写<br/><img src="https://www.wenjiangs.com/wp-content/themes/wenshuo/plugin/vCode.php" /></p>
<?
}
add_filter('wp_authenticate_user', 'vcode_v', 10, 2);

输入的时候验证验证码

//输入的时候验证验证码
function vcode_v($user, $username='', $password=''){
    if (isset($_POST['wp-submit'])){
        if(!($_POST['vcode'] == $_SESSION['VCODE'])){
            remove_filter('authenticate', 'vcode_v', 20, 3);
            $error = new WP_Error();
            $error->add('incorrect_password', '<strong>错误</strong>:验证码不正确。');
            return $error;
        }
    }
    return $user;
}
add_filter('wp_authenticate_user', 'vcode_v', 10, 2);
add_action('login_form', 'v_login');

验证码函数

session_start();
//生成验证码图片
Header("Content-type: image/PNG");
$im = imagecreate(44,18); // 画一张指定宽高的图片
$back = ImageColorAllocate($im, 245,245,245); // 定义背景颜色
imagefill($im,0,0,$back); //把背景颜色填充到刚刚画出来的图片中
$vcodes = "";
srand((double)microtime()*1000000);
//生成4位数字
for($i=0;$i<4;$i++){
	$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255)); // 生成随机颜色
	$authnum=rand(1,9);
	$vcodes.=$authnum;
	imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
}
$_SESSION['VCODE'] = $vcodes;

for($i=0;$i<100;$i++){ //加入干扰象素
	$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
	imagesetpixel($im, rand()%70 , rand()%30 , $randcolor); // 画像素点函数
}
ImagePNG($im);
ImageDestroy($im);

注意 functions.php 文件的头部必须添加 session_start(),不然无法获取到验证码。

WordPress 中相关的登陆钩子函数和滤镜函数请访问:http://codex.wordpress.org/Function_Reference/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文