仪表盘报告 - 可疑登录

这是可疑登录仪表板报告的 SQL 版本。

此仪表板报告提供了在指定日期范围内,与先前登录情况存在可疑差异的新用户登录的详细信息。通过识别异常登录尝试,管理员可以采取积极措施来保护用户帐户和论坛免受潜在安全威胁。

-- [params]
-- date :start_date = 2024-01-07
-- date :end_date = 2024-02-08

SELECT 
    u.id user_id, 
    u.username, 
    t.client_ip, 
    t.user_agent, 
    t.created_at login_time
FROM user_auth_token_logs t
JOIN users u ON u.id = t.user_id
WHERE t.action = 'suspicious'
    AND t.created_at >= :start_date
    AND t.created_at <= :end_date
ORDER BY t.created_at DESC

SQL 查询说明

此 SQL 查询通过检索在指定日期范围内被标记为可疑的登录尝试列表来运行。以下是查询功能明细:

  • 参数定义:查询首先定义两个参数 :start_date:end_date,用于指定报告的时间段。两个日期参数均接受 YYYY-MM-DD 格式。
  • 数据选择:查询从 user_auth_token_logs 表(记录用户身份验证活动的详细信息)和 users 表(包含用户信息)中选择特定字段。选择的字段包括:
    • u.id (user_id):用户的唯一标识符。
    • u.username:用户的用户名。
    • t.client_ip:进行登录尝试的 IP 地址。
    • t.user_agent:用于登录尝试的浏览器或设备的 user agent 字符串。
    • t.created_at (login_time):发生登录尝试的时间戳。
  • 连接操作:查询通过其公共 user_id 字段将 user_auth_token_logs 表 (t) 与 users 表 (u) 连接起来,以将每次登录尝试与相应的用户信息相关联。
  • 筛选:它筛选记录,仅包括在 user_auth_token_logs 表的 action 字段中标记为 suspicious 的登录尝试。此外,它还会筛选记录,仅包括在指定日期范围(从 :start_date:end_date)内发生的记录。
  • 排序:最后,查询按 created_at 时间戳降序对结果进行排序,确保最新的可疑登录尝试首先列出。

示例结果

user username client_ip user_agent login_time
user_id_example_1 username_example 2001:0db8:85a3:0000:0000:8a2e:0370:7334 Mozilla/5.0 (iPhone; CPU iPhone OS 17_2_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1 2024-01-09T08:18:57.535Z
4 个赞