Arquivo da categoria: Segurança

Formulários e CSRF no Magento

1364931728_Cart_by_Artdesigner.lvO Magento utiliza em seus formulários uma chave que serve de proteção contra ataques do tipo CSRF. Portanto se for necessário enviar um formulário para o Magento e este não tiver esta chave atualizada, o formulário não é aceito. Para obter esta chave, utilize o comando no controlador:

$formKey = Mage::getSingleton('core/session')->getFormKey();

Após obtida, esta chave deve ser adicionada ao formulário através de um campo do tipo hidden com o nome de form_key:

$html_campo_hidden = '<input name="form_key" type="hidden" value="' . $formKey . '">';

Pronto, agora basta adicionar este HTML ao seu formulário e ele já será aceito pelo Magento.

Até a próxima 😉

Gerando senhas aleatórias com PHP

Neste post trago a vocês uma função capaz de gerar senhas aleatórias, escrita em PHP. A função possui apenas um parâmetro: o tamanho da senha a ser gerada. Para utilizá-la, basta chamar a função passando como parâmetro o tamanho da senha a ser gerada. Ela irá retornar a senha gerada. Se nenhum parâmetro for informado, ela irá gerar uma senha de 6 caracteres. A função gera senhas contendo letras maiúsculas e minúsculas e números.

Para alterar os caracteres utilizados para gerar a senha, basta alterar o conteúdo da variável $caracteres. A função está totalmente comentada.

Para baixar, basta clicar AQUI.

Até a próxima 😉

Os perigos da diretiva register_globals

A diretiva register_globals, presente no PHP, quando ativada, faz com que todos os índices presentes nos arrays superglobais $_POST, $_GET, $_COOKIE, $_SESSION $_SERVER, se tornem automaticamente variáveis dentro do seu script. Antigamente, isto era utilizado por diversos programadores, pois evita o trabalho de atribuição das variáveis.

A partir da versão 4.2.0 do PHP, esta diretiva vem desabilitada por padrão, pois as facilidades providas por ela, contribuem para que programadores iniciantes e desavisados cometam falhas de seguranças em seus códigos. A partir da versão 5.3, esta diretiva é considerada obsoleta e a partir da versão 5.4 ela não está mais presente.

Vamos a um exemplo de falha de segurança com register_globals:

Continue lendo

Bloqueando acesso direto em scripts PHP

Bloquear scripts contra acesso direto, é algo bastante necessário pra quem desenvolve para web, principalmente se o arquivo a ser bloqueado seja um arquivo de configurações, com funções úteis, etc.

O ideal nestas situações, é que se mantenha o arquivo acima da pasta raiz do seu servidor, porém quando isto não é possível, temos uma outra alternativa: vamos comparar o nome do arquivo a ser protegido, com o nome do arquivo que esta em execução.

Para isto, basta adicionar este trecho de código ao arquivo que se deseja proteger:

Continue lendo

Validando emails com PHP

Validar emails é uma coisa essencial no universo WEB, seja para utilizá-lo em uma newsletter ou em um cadastro qualquer. A melhor forma de validar um email é utilizando os famosos “emails de confirmação“, porém como nem todo sistema necessita deste tipo de validação, apresento-lhes uma função simples de verificação de email, que verifica inclusive se o domínio do email informado possui um servidor de email respondendo.

Vamos ao código:

Continue lendo

Desabilitando a listagem de diretórios no Apache

A listagem de diretórios é um recurso que permite ao visitante, visualizar todo o conteúdo de um determinado diretório do servidor WEB através do browser, se este não conter um arquivo de índice. Este recurso é bom por um lado, porém automaticamente abre brechas, pois acaba expondo todos os arquivos de um determinado diretório para qualquer visitante que chegar ao seu site.

Para corrigir isto, existem duas formas:

Continue lendo

Protegendo diretórios com senha através do Apache

O Apache é um dos servidores WEB mais populares do mundo. Isto se deve a sua segurança, estabilidade, licença e também as suas mais diversas funcionalidades.

Dentre elas, temos a possibilidade de proteger um diretório com senha através da criação de um arquivo .htaccess personalizado.

Vamos aos passos:

Certifique-se de que a opção AllowOverride do arquivo de configuração do apache esteja marcada como AuthConfig ou All.

Continue lendo