Softsis - Sistemas e Websites



Dicas de segurançaTerça, 02 de Outubro de 2007

Quem trabalha com programação deve sempre ter alguns cuidados básicos ao fazer a programação de um site. Muitas vezes pequenos detalhes, que passam desapercebidos facilmente, podem deixar o seu servidor totalmente exposto para pessoas mal intencionadas.

Gostaria de contribuir com uma pequena lista de coisas que você deve ter muito cuidado ao implementar um novo sistema.

1. Manipulação de arquivos através de url

Nunca carregue, mostre ou manipule arquivos do seu servidor referenciados na url. Um caso muito comum é quando você precisa que o usuário faça o download de um arquivo através do seu servidor e utiliza a seguinte forma :

http://www.meuenderco.com/download.php?arquivo=foto.jpg

Para as pessoas bem intencionadas não há problema algum, mas para as que não estão bem intencionadas essa é uma porta para poder baixar qualquer arquivo do seu servidor. Por exemplo, ele poderá baixar outro arquivo qualquer da seguinte forma :

http://www.meuendereco.cpm/download.php?arquivo=download.php

Dessa forma a pessoa estará baixando o arquivo download.php para o seu micro, e partindo do mesmo principio poderá baixar qualquer outro arquivo do seu servidor. Ou seja, você abriu as portas do seu sistema para qualquer pessoa.

2. Nunca permita exibir a lista dos seus diretórios

Use sempre no arquivo .htaccess o seguinte código :

Options -Indexes

Assim você protege os seus arquivos e dificulta ação de pessoas mal intencionadas.

3. Cuidado com formulários

Formulário são a forma mais usada para se comunicar com o usuário (receber feedback), mas devemos ter alguns cuidados. Pois, por se tratar de um código HTML, ele se torna muito vulnerável e de fácil manipulação, permitindo que pessoas mal intencionadas utilize-no para passar informações erradas ao seu site.

Por exemplo :

Em um formulário que você utiliza o campo hidden para passar a ID de um usuário, você utiliza o seguinte campo para identificar o usuário

<input type="hidden" id="usuario" name="usuario" value="1">

Facilmente pode-se mudar o valor passado no formulário, enganando o seu código PHP e induzindo a operações perigosas. Como no caso, qualquer pessoa poderá mudar o valor da variável ID, enganando o servidor que quem enviou as informações.

4. Validar pelo JavaScript

Nunca confie na validação feita no lado cliente (JavaScript), pois essa validação pode ser facilmente manipulada. Utilize-a no lado do cliente para fazer uma pre-validação. E depois sempre faça a validação no servidor como forma de precaução.

5. Cuidado com o SQL Injection

Quando você receber os dados vindo de um usuários eles deverão ser tratados, para que sejam retirados o SQL Injections, que são comandos inseridos juntamente com os dados, fazendo o seu servidor agir de forma errado. Por exemplo :

Em um campo de busca o usuário poderá pesquisar pela palavra : PALAVRA. E o seu servidor irá fazer a seguinte operação SQL :

SELECT * from TEXTOS WHERE TITULO = 'PALAVRA';

Mas se o usuário acrescentar algo malicioso, do tipo : PALAVRA' OR TITULO = '. O seu sistema irá fazer a busca da seguinte maneira :

SELECT * from TEXTOS WHERE TITULO = 'PALAVRA' OR TITULO = '';

Ou seja, o sistema irá retornar todos os Títulos cadastrados.

Portanto, devemos ter muito cuidado com o que vem do lado do usuário. Pois nem sempre temos um usuário bem intencionado.

Categorias : php, programação, softsis, webpróximo post
[Blogar]
post anterior
[E se dependesse do cliente]

notícias e artigos relacionados


comentários

#1sergio

muito bom!!!


deixe o seu comentário

fabio@softsis.com.br :: www.softsis.com.br