O que é segurança?
A segurança é uma medida relativa, não um padrão absoluto.
Infelizmente, a maioria dos projetos de software lista a segurança como um requisito simples. É seguro? A resposta a esta pergunta é tão subjetiva quanto perguntar se algo está quente.
A sobrecarga para alcançar a segurança deve ser razoável.
Alcançar um nível adequado de segurança é simples e barato para a maioria das aplicações. No entanto, se as informações que precisam ser protegidas forem muito valiosas ou os requisitos de segurança forem muito rigorosos, será necessário pagar mais para aumentar o nível de segurança. Este custo deve ser incluído no orçamento do projeto.
A facilidade de uso deve ser razoável para alcançar a segurança.
Um fenômeno muito comum é que, embora a segurança de uma aplicação WEB aumente bastante, a facilidade de uso também diminui bastante. Senhas, prazos de expiração de SESSÃO e controles de acesso causarão obstáculos aos usuários legítimos. Às vezes é necessário fornecer segurança adequada para uma aplicação, mas esta não é a única solução para todas as aplicações. É aconselhável prestar mais atenção aos usuários legítimos ao aplicar regras de segurança.
A segurança deve fazer parte do design.
Se você não considerar a segurança ao projetar seu aplicativo, estará destinado a encontrar continuamente novas vulnerabilidades de segurança. Programas cuidadosamente escritos não podem compensar um design deficiente.
As etapas básicas do aplicativo são principalmente para usuários legítimos.
Um design seguro é apenas parte da solução. Durante o desenvolvimento, quando se inicia a codificação, é necessário considerar os usuários legítimos da aplicação. Geralmente, o objetivo é fazer com que a aplicação funcione conforme o esperado, embora seja necessário implementar uma funcionalidade de aplicação adequada, o que não torna a aplicação mais segura.
Treine você mesmo.
Aqueles que estão lendo este guia estão preocupados com a segurança e, embora pareça um clichê, esta é uma etapa crítica. Existem inúmeros recursos disponíveis na web ou em livros, e muitos estão incluídos no repositório da PHP Security Alliance: http://phpsec.org/library/ .
Primeiro, filtre todos os dados externos.
A filtragem de dados é a base da segurança de aplicações WEB em qualquer idioma e em qualquer plataforma. Inicializar variáveis e filtrar todos os dados obtidos externamente permite obter o dobro do resultado com metade do esforço e, com baixo custo, o gerenciador evita possíveis vulnerabilidades de segurança importantes. Uma lista branca é melhor do que uma lista negra. Isto significa que todos os dados devem ser considerados ilegais até que possam ser provados como legítimos (melhor do que considerar todos os dados legais até que possam ser provados como ilegais).