noobinhu 38 Postado Julho 13, 2009 Share Postado Julho 13, 2009 Bom, com o tanto de invasões e spams em grandes comunidades e sites por aí, resolvi dar uma pesquisada em segurança. Foi então que percebi em diversos sites a falta de checagem de cookies, inclusive nos meus, e isto é uma grande falha quando se usa session e cookies para guardar informações do usuário. Para tanto, eu fiz uma função provisória em PHP para a checagem do mesmo. O único problema da função é um intervalo existente quando se ativa/desativa cookies, tem que esperar 10 segundos para o script conseguir identificar novamente se está ativo ou não. Observações Importantes: Utilizar no header das páginas; Criar diretório acesso na pasta root da aplicação. Função: function checkCookies() { /* Função desenvolvida por Anderson F R. Postada no fórum iMasters e XTibia. */ /* configurações */ $cookiename = 'm5'; $cookievalue = time(); $dir = "acesso/"; $maxsec = 10; /* termina config */ setcookie($cookiename, md5($cookievalue)); // adiciona cookie // verifica se o valor do cookie é igual $i = 0; while ($i <= $maxsec) { $value = time()-$i; if ($_COOKIE[$cookiename] == md5($value)) { return true; break; } $i++; } // verifica se existe diretório de acesso if(!is_dir($dir)) die("Erro! Diretório ".$dir." não existe."); // verifica a última visita do usuário $ip = $_SERVER['REMOTE_ADDR']; if (file_exists($dir.$ip.".txt")) { $lastvisit = file_get_contents($dir.$ip.".txt"); $lastvisit = (int) $lastvisit; $diferenca = time()-$lastvisit; if ($diferenca <= $maxsec) { // arquivo existente, acabou de visualizar o site, cookie não inserido... desativado! $f = fopen($dir.$ip.".txt", "w+"); fwrite($f, time()); fclose($f); return false; } else { // arquivo existente, visualizou o site há algum tempo, necessário checar novamente. $f = fopen($dir.$ip.".txt", "w+"); fwrite($f, time()); fclose($f); return true; } } else { // arquivo não existente, primeira visita do usuário ao site, criamos o arquivo de log de acesso e um header para o reload da página $f = fopen($dir.$ip.".txt", "w+"); fwrite($f, time()); fclose($f); header("Location: #"); return true; } } Exemplo de utilização: if (checkCookies() == true) { echo 'Cookie ativado!'; } else { die('Cookie desativado! Por favor, ative o cookie para visualizar nosso site.'); } É importante notificar a todos que a verificação do javascript neste caso é bastante importante também. Abraços, até mais! Link para o comentário https://xtibia.com/forum/topic/116181-seguran%C3%A7a-em-sites-verificando-cookies/ Compartilhar em outros sites More sharing options...
satan666 12 Postado Outubro 8, 2009 Share Postado Outubro 8, 2009 vou me dedicar um pouco mais a API e php, quem sabe um dia eu não possa ajuda-lo em algo não é? se desse eu ajudaria mas preciso estudar muito ainda. Link para o comentário https://xtibia.com/forum/topic/116181-seguran%C3%A7a-em-sites-verificando-cookies/#findComment-799650 Compartilhar em outros sites More sharing options...
Posts Recomendados