Posts Tagged ‘top 25’

Os 25 mais perigosos erros de programação

Wednesday, March 18th, 2009

Recentemente o SANS Institute divulgou um artigo interessantíssimo listando os 25 erros mais perigosos - e comuns! - cometidos por desenvolvedores de software. São erros críticos, que podem comprometer todo um sistema e expor este a ataques de pessoas mal-intencionadas ou mesmo de usuários curiosos :-)

Sem delongas, segue a lista dos erros.

1) Má (ou inexistente) validação de dados do usuário

Um dos “mandamentos” de todo programador: “Nunca confie nos dados do usuário!“. Sempre, sempre faça validação. Como fazer isso irá variar conforme a sua aplicação. Por exemplo, se o seu sistema perguntar a idade do usuário, confira se o valor digitado é um inteiro.

2) Uso de encoding errado no output. (ou falta de “escape characteres”)

Encoding - ou codificação - é a nossa segunda fonte de erros.

Digamos que você tenha um componente A no seu sistema, que se comunica com o componente B através de comandos. Pois bem, digamos que um dos comandos seja IMPRIMIR palavra o que acontece se o componente A quiser imprimir a string IMPRIMIR? Se ele enviar IMPRIMIR IMPRIMIR o componente B pode achar que são dois comandos, e então desencadear uma falha substancial no sistema.

3) Falha em preservar a estrutura de uma query SQL (SQL injection)

SQL Injection é uma das técnicas hacker mais simples e, ao mesmo tempo, mais eficientes.

Sem me alongar nesta falha, eu apenas pergunto: O que acontece nas suas aplicações se o usuário entrar com o valor ‘; DROP TABLE users;’# ?

Nada? Afortunado ou prevenido és, caro leitor…

4) Falha ao preservar a estrutura do seu documento HTML (Cross-site scripting).

Digamos que você tenha um site onde os usuários podem criar um perfil, com uma breve descrição.

Então, um usuário mal-intencionado insere um pedaço de código HTML nessa descrição, que explora uma falha em um browser conhecido (o IE, por exemplo. :-) )

Se o seu site nao retirar este pedaço do código da descrição do usuário, outros usuários podem acessar o perfil e sofrer as consequências da execução do código malicioso. E o culpado, pasme, é você.

Vou continuar com as outras falhas no próximo post, para este post não ficar muito grande - e ninguém ler.