TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Segurança Php

Monografias: Segurança Php. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  9/5/2013  •  540 Palavras (3 Páginas)  •  434 Visualizações

Página 1 de 3

SEGURANÇA PHP

O propósito deste texto é informar aos programadores PHP dos erros comuns em segurança que podem ser encontrados em scripts PHP. Enquanto muitos dos seguintes conceitos podem parecer ser um senso comum, eles infelizmente não são sempre uma prática comum.

Após aplicar as seguintes técnicas ao seu código, você estará apto a eliminar a grande maioria dos furos de segurança que povoam muitos scripts. Muitos destes furos de seguranças foram encontrados em scripts PHP comerciais e open source largamente utilizados no passado (cito o OsCommerce, o WordPress e o phpBB como exemplos).

O mais importante conceito a aprender neste artigo é que você nunca deve confiar que o usuário entrará com dados exatamente como era esperado. A forma como a maioria dos scripts PHP são comprometidos é entrando com dados inesperados para explorar furos de segurança inadvertidamente deixados no script.

Outro ponto muito importante é não exibir, em momento algum, o nome de login (usuário) de algum usuário cadastrado no sistema. Lembre-se que para um usuário conseguir invadir a conta do outro ele precisa de duas coisas: usuário (ou e-mail) e a senha.. Se ele souber o usuário já tem 50% de sucesso.

Vale lembrar também que você não precisa deixar a senha do usuário na forma real quando salva-la no banco. É muito mais seguro salvar um md5() ou sha1() da senha no banco e quando for necessário fazer a validação do usuário você também gera o md5() ou sha1() da senha que ele digitou e compara com o que há no banco. Assim, se por ventura alguém conseguir invadir e pegar todos os registros do banco de usuários, o máximo que ele irá conseguir são o usuário/e-mail e uma senha criptografada.

Muitos programadores preferem usar arquivos “.inc” para identificar arquivos que são chamados através das funções include() e require() (e as respectivas “_once”).

Se você não configurar o servidor Apache corretamente, os arquivos “.inc” podem ser baixados e lidos, ao invés de interpretados pelo servidor. O resultado é seu código-fonte exposto. Em casos mais graves, arquivos de configuração, que incluem a senha do banco de dados, podem ser lidos por qualquer um.

Detalhe, isto é mais comum do que se pensa. Digite no Google: filetype:inc mysql_connect e você verá que muitos sites, além de não configurarem o arquivo .inc corretamente, mantém a listagem de arquivos e pastas disponível. Essa busca retornará arquivos que terminam com “.inc” e possuem a palavra “mysql_connect”, que é uma função para conectar ao banco de dados, que tem como argumentos o endereço, usuário e senha. Logo, é possível obter todos os dados necessários para conectar-se ao banco de dados.

Código para o Apache interpretar arquivos .inc como .php:

(adicionar ao arquivo .htaccess)

CódigoPHP:

Addtype application/x-httpd-php .inc

Evite curiosos e problemas bloqueando a listagem de arquivos.

Poucas vezes, a listagem de arquivos de uma pasta pode ser útil. Portanto, se você necessita realmente usar a listagem de arquivos e pastas, faça um script em PHP. Com ele, você pode definir quais pastas / arquivos serão exibidos. Desabilitando a

...

Baixar como (para membros premium)  txt (3.5 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com