3. As linguagens de programação por si só já
possuem algumas brechas de segurança que
podem vir a ser exploradas por hackers mal
intencionados. Porém, estima-se que cerca
de 70% das falhas exploradas não são da
linguagem, e sim, da codificação indevida do
sistema.
4. Mensagens de Erro: É necessário muito
cuidado com a exposição de informações que
mensagens de erro provocam. Uma simples
falha de conexão com banco de dados pode
exibir o nome do banco e o usuário do
mesmo, o que é perigoso se alguém mal
intencionado ver.
6. Criptografia: Como sabemos, informações
trafegam e existe a possibilidade de
interceptação dessas informações por um
cracker. Toda informação sigilosa deve ser
protegida por um algoritmo de criptografia. É
aconselhável usar um bom algoritmo de
criptografia, ou usar um próprio.
7. Validação de Dados: Tendo seu aplicativo na
web você nunca terá 100% de controle sobre
tudo que seus visitantes vão preencher em
seus formulários, que diga-se de passagem, é
a ferramenta mais importante de qualquer
aplicação. Logo, filtre todas as informações
afim de evitar ataques, tais como: XSS, SQL
Injection, Mail Injection, HTML Injection e
outros.
8. Configurações de Servidor: Fique atento
sempre as configurações dos servidores que
pretende trabalhar. Existem diretivas que
podem ser exploradas facilmente se não
houver a devida preocupação por parte do
programador na hora da codificação.
9. Atualize-se: Procure sempre procurar sobre
novos tipos de invasão e softwares mal-
intencionados e modo de como proteger o
seu sistema web deles. Não esqueça, todo dia
surgem novos vírus e outras ameaças.
10. SQL Injection: É um tipo de ameaça de
segurança que visa a inserção de instruções
SQL através da manipulação de dados de
uma aplicação.
11. Consideremos o seguinte comando SQL:
SELECT id, nome, sobrenome FROM autores;
Restringiremos nossa busca amarrando os
valores inseridos pelo usuário numa cláusula
WHERE:
SELECT id, nome, sobrenome FROM autores
WHERE nome = 'josé' AND sobrenome = 'silva';
José e Silva são strings cujo conteúdo será
inserido como entrada pelo usuário.
12. Considerando isso, vamos supor que o usuário
coloque acidentalmente uma aspa simples no
meio da string inserida:
SELECT id, nome, sobrenome FROM autores
WHERE nome = 'jo'sé' AND sobrenome = 'silva';
O inserção da aspa faz com que o que vier depois
dela seja considerado como uma instrução SQL
autêntica. Acima temos erro de sintaxe, mas
poderíamos fazer assim:
SELECT id, nome, sobrenome FROM autores
WHERE nome = 'jo'; DROP TABLE autores ;
13. Desse modo, nesse último comando, ao
inserirmos uma string acrescida de aspas
simples e do comando “DROPTABLE
autores” no injetamos uma instrução SQL de
forma indevida, e removemos a tabela
autores de nosso banco de dados.
14. Resumindo, a SQL Injection só significa uma
coisa para nosso sistema:
15. Usar a Função Addslashes();
Fazer validações na entrada;
Usar prepared statements;