niihost

WordPress异地IP登录自动禁封用户

WordPress异地IP登录自动禁封用户,在很多交互场景很有用处,也能很大程度保护用户的账户和数据安全。

<?php
// 用于WordPress的异地IP登录自动封禁用户的插件或功能示例
 
// 检测异地登录,如果是则封禁用户
function detect_and_ban_offsite_login() {
    // 获取当前用户对象
    $user = wp_get_current_user();
 
    // 检查用户是否登录
    if ( $user->ID && is_user_logged_in() ) {
        // 获取用户登录IP
        $user_ip = $_SERVER['REMOTE_ADDR'];
 
        // 获取用户最后一次登录IP
        $last_ip = get_user_meta( $user->ID, 'last_login_ip', true );
 
        // 如果用户最后一次登录IP与当前IP不同,并且不是同一个IP,则封禁用户
        if ( $last_ip && $last_ip != $user_ip ) {
            // 更新用户封禁状态
            update_user_meta( $user->ID, 'ban_user', 1 );
 
            // 可以在这里添加通知或者日志记录
            // do_action( 'user_offsite_login_banned', $user->ID, $user_ip, $last_ip );
        }
 
        // 更新用户最后登录IP
        update_user_meta( $user->ID, 'last_login_ip', $user_ip );
    }
}
 
// 添加钩子,在用户登录时检测异地登录
add_action( 'wp_login', 'detect_and_ban_offsite_login' );

这段代码首先定义了一个函数 detect_and_ban_offsite_login,它在用户登录时被触发。该函数会检查用户的最后登录IP与当前IP是否不同,如果不同,则会更新用户的元数据以标记用户的封禁状态。然后,使用 wp_login 钩子将其注册为在用户登录时执行。这个简单的例子演示了如何在WordPress中检测异地登录并自动封禁用户。

 

给TA赏糖
共{{data.count}}人
人已赏糖
技术分享

WordPress如何使用代码创建新的数据库表

2024-12-2 5:48:01

技术分享

优化WordPress网站B2主题DIY主题时侧边栏会遮盖底部

2024-12-2 10:20:20

0 条回复 A文章作者 M管理员
技术宅评论
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索