-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathauth_admin.php
More file actions
77 lines (63 loc) · 2.5 KB
/
auth_admin.php
File metadata and controls
77 lines (63 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
// Função para verificar se é super admin
function verificarSuperAdmin() {
// Verificar se está logado como super admin
if (!isset($_SESSION["super_admin_logado"]) || $_SESSION["super_admin_logado"] !== true) {
return false;
}
// Verificar se a sessão não expirou (2 horas)
if (isset($_SESSION["super_admin_login_time"]) &&
(time() - $_SESSION["super_admin_login_time"]) > 7200) {
session_destroy();
return false;
}
return true;
}
// Função para fazer login do super admin
function loginSuperAdmin($senha) {
// Senha do super admin (em produção, deve estar em arquivo de configuração seguro)
// ATENÇÃO: A senha 'admin123' está sendo usada aqui APENAS para fins de demonstração.
// Em um ambiente de produção, use um hash seguro e armazene-o em um local apropriado.
$senhaHashCorreta =
// Gerar hash para 'admin123' (executar uma vez e substituir aqui):
// echo password_hash('admin123', PASSWORD_DEFAULT);
'$2y$10$BvKGi1.gnZO2EcFNXaCozOJUrgPrdnS61kp3IM2QnNPTrrhXtyVgW'; // Hash de 'admin123'
if (password_verify($senha, $senhaHashCorreta)) {
$_SESSION["super_admin_logado"] = true;
$_SESSION["super_admin_login_time"] = time();
return true;
}
return false;
}
// Função para fazer logout do super admin
function logoutSuperAdmin() {
session_destroy();
}
// Função para gerar token CSRF
function gerarTokenCSRF() {
if (!isset($_SESSION["csrf_token"])) {
$_SESSION["csrf_token"] = bin2hex(random_bytes(32));
}
return $_SESSION["csrf_token"];
}
// Função para verificar token CSRF
function verificarTokenCSRF($token) {
return isset($_SESSION["csrf_token"]) && hash_equals($_SESSION["csrf_token"], $token);
}
// Função para atualizar a senha do super admin
function atualizarSenhaSuperAdmin($novaSenha) {
$novaSenhaHash = password_hash($novaSenha, PASSWORD_DEFAULT);
// Em um ambiente de produção, esta senha deveria ser salva em um arquivo de configuração seguro ou banco de dados.
// Para este exemplo, vamos sobrescrever o hash no próprio arquivo (APENAS PARA DEMONSTRAÇÃO).
$fileContent = file_get_contents(__FILE__);
$fileContent = preg_replace(
'/\$senhaHashCorreta = \'.*?\';/',
'\$senhaHashCorreta = \'' . $novaSenhaHash . '\';',
$fileContent
);
file_put_contents(__FILE__, $fileContent);
return true;
}