quinta-feira, 12 de julho de 2012

Os erros de programação mais perigosos

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 estes a ataques de pessoas mal-intencionadas ou mesmo de usuários curiosos.
Passo a listar alguns dos erros:
  • 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. 
  • 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.
  • 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;’# ?
  • 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, é você.

Nenhum comentário: