Esta é uma versão SQL do Relatório de Painel para Logins Suspeitos.
Este relatório de painel fornece detalhes de novos logins de usuários que diferem suspeitamente de logins anteriores, dentro de um intervalo de datas especificado. Ao identificar tentativas de login incomuns, os administradores podem tomar medidas proativas para proteger as contas de usuário e o fórum contra possíveis ameaças de segurança.
-- [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
Explicação da Consulta SQL
A consulta SQL opera recuperando uma lista de tentativas de login que foram sinalizadas como suspeitas dentro de um intervalo de datas especificado. Aqui está um detalhamento de como a consulta funciona:
- Definição de Parâmetros: A consulta começa definindo dois parâmetros,
:start_datee:end_date, para especificar o período de tempo para o relatório. Ambos os parâmetros de data aceitam o formatoAAAA-MM-DD. - Seleção de Dados: A consulta seleciona campos específicos da tabela
user_auth_token_logs, que registra detalhes sobre atividades de autenticação do usuário, e da tabelausers, que contém informações sobre os próprios usuários. Os campos selecionados incluem:u.id(user_id): O identificador exclusivo do usuário.u.username: O nome de usuário do usuário.t.client_ip: O endereço IP de onde a tentativa de login foi feita.t.user_agent: A string do agente do usuário do navegador ou dispositivo usado para a tentativa de login.t.created_at(login_time): O timestamp de quando a tentativa de login ocorreu.
- Operação de Junção: A consulta une a tabela
user_auth_token_logs(t) com a tabelausers(u) em seu campo comumuser_idpara correlacionar cada tentativa de login com as informações correspondentes do usuário. - Filtragem: Ela filtra os registros para incluir apenas as tentativas de login que são marcadas como
suspiciousno campoactionda tabelauser_auth_token_logs. Além disso, ela filtra os registros para incluir apenas aqueles que ocorreram dentro do intervalo de datas especificado (:start_datea:end_date). - Ordenação: Finalmente, a consulta ordena os resultados em ordem decrescente pelo timestamp
created_at, garantindo que as tentativas de login suspeitas mais recentes sejam listadas primeiro.
Exemplo de Resultados
| 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 |
| … | … | … | … | … |