Fala gente,
Um recurso muito bom de segurança é a criação de LOGs que são registro de atividades. Você pode criar registro de todos os tipo de atividades: visitas, cadastros, tentativas de acesso, erros do PHP e muito mais.
O que você vai precisar pra criar um sisteminha simples de LOGs pro seu site é de apenas uma tabela no banco de dados MySQL:
Vale ressaltar que você não precisa gravar os LOGs especificamente no banco de dados, você pode criar arquivos e pastas pra isso também. Falarei sobre como criar arquivos e pastas dinamicamente (pelo PHP) em outro tópico.
Tendo a tabela já criada no seu banco de dados, você só precisa criar uma função para agilizar as coisas:
Com essa função você pode registrar qualquer tipo de evento no seu MySQL e depois, organizando-os por data e/ou IP saber exatamente o que aconteceu no seu sistema, vindo de onde, e como aconteceu.
Para usar a função e salvar uma mensagem de LOG, é só fazer assim:
Vale lembrar que o script acima só vai funcionar se você abrir uma conexão com o MySQL e o banco de dados antes de tentar salvar uma mensagem de LOG.
A função criada também retorna true ou false (verdadeiro ou falso) para caso você precise fazer uma verificação se o LOG foi salvo com sucesso:
Sugiro que salvem LOGs - principalmente - de todas as tentativas de login. Salve LOGs também das alterações, cadastros e deleções de registros do sistema (produtos/categorias/lojas/notícias e etc.). Isso vai tornar a sua aplicação mais segura e quando algo der errado você vai poder encontrar “o pai da criança” com mais facilidade.
Se você já tiver feito um sistema de login no seu site (se não, veja aqui como fazer um), salve também o usuário atual, como por exemplo:
"[ Usuário: Fulano ] Cadastrou uma notícia" Com isso, você tem o nome do usuário usado, o IP e a data e hora de onde/quando/como foi executada a ação de cadastro. Muito útil, não? Até a próxima! #### Documentação Oficial:
- Função [date()](http://br2.php.net/manual/en/function.date.php) » Função para formatar datas
- Função [mysql_escape_string()](http://br.php.net/mysql_escape_string) » Prepara uma string para o MySQL
- Função [mysql_query()](http://br.php.net/mysql_query) » Executa uma query (consulta SQL)