Arquivo da tag: segurança

DotEnv: O Lugar Perfeito Para as Configurações do Seu Projeto PHP

DotEnv: O Lugar Perfeito Para as Configurações do Seu Projeto PHP

Onde você armazena as configurações sensíveis do seu projeto PHP? Se as define diretamente em seu código, você pode estar correndo um enorme risco de Segurança.

Configurações como nomes de usuário de banco de dados, senhas de SMTP e outras informações sensíveis devem ficar em um local seguro. E o mais importante: fora do controle de versão do software (como Git, SVN e outros).

Neste artigo vou mostrar como utilizar o DotEnv de forma extremamente. Com duas linhas de código, todas as configurações importantes de seu projeto estarão disponíveis em variáveis de ambiente.

Continue lendo

Como Gerar Logs de Execução com PHP

Como Gerar Logs de Execução com PHP

Logs de execução são muito úteis para “catalogar” o ciclo de execução de um programa. Cada ação executada pelo software é registrada em um arquivo, juntamente com a data e a hora do ocorrido.

Muitos programadores enchem a tela de echo e var_dump, para descobrir o que está ocorrendo no código. Isso não é totalmente errado, mas há alternativas melhores. Aliás, já vi gente esquecer de tirar var_dump antes de mandar o sistema pro ar. Resultado: todo mundo vendo o debug ao acessar o site…

Neste artigo vou mostrar como criar um simples sistema de logs usando PHP.

Continue lendo

C/C++: calculando hash MD5 usando a biblioteca do OpenSSL

C/C++

Obter o hash MD5 de uma string é uma tarefa bem simples em algumas linguagens de mais alto nível, como Python, Ruby ou PHP. Porém, em C e C++ não é tão simples. Sem o auxílio de uma biblioteca externa, não podemos calcular hashes, como MD5 ou SHA-1 (exceto se você implementar esses algoritmos, é claro).

Mostrarei adiante como calcular o hash MD5 de uma string, utilizando a biblioteca OpenSSL, disponível nos sistemas Linux e Unix-Like (em Mac OS X também funciona, apesar de aparecerem warnings dizendo que as funções da OpenSSL são obsoletas).

Continue lendo

CHMOD: Permissões em Sistemas Linux e Unix-Like

Sistemas Operacionais Unix-Like, como o Linux, permitem restringir acesso a arquivos por meio do sistema de permissões. Como tudo em Linux é tratado como arquivo, as permissões são válidas para arquivos, diretórios, dispositivos de entrada/saída etc.

Não somente usuários Linux devem conhecer o sistema de permissões. Desenvolvedores que programam sistemas que rodarão em plataforma Linux devem conhecer o sistema de permissões também. É muito comum vermos programadores PHP falando “dê chmod 777, que resolve o problema de permissão”. Isso não é solução, é apenas o começo de um possível problema – e grave – futuro.

Continue lendo

C/C++: Por que usar fgets em vez de gets

C/C++

A função gets, da biblioteca padrão do C (stdio) pode gerar um grande problema para o programador que a usa: como essa função não limita o número de caracteres a serem lidos da entrada padrão (stdin), pode haver vazamento de memória, ou até pior, injeção de código malicioso no progreama.

A solução é usar fgets, que limita o buffer de leitura.

Continue lendo