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.
Por noobinhu, 13 de jul. de 2009 em Programação Web
info
Grupo: Conde
Registrado: 07/05/08
Posts: 612
Reputação: +12
Char no Tibia: leviana luciferiana

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.
info
Grupo: Marquês
Registrado: 01/03/06
Posts: 1k
Reputação: +38
Gênero: Masculino
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!