Sanitização é a chave

Nos √ļltimos meses, tenho lido o c√≥digo de outros desenvolvedores (especialmente o c√≥digo PHP), e uma coisa que percebi √© que nem todo mundo limpa a entrada.

Este é um dos fatores mais importantes para um aplicativo seguro e bem-sucedido, seja na Web ou não.

Basta verificar se a entrada fornecida é a que você esperava e envolvê-la em uma chamada de função.

Por exemplo:

[código php]
// Este é apenas um exemplo muito curto
$ id = $ _GET [‘id’];

$ query = mysql query (‘SELECT table.field FROM table WHERE id =’. $ GET [‘id’]);

[/ código php]

O exemplo acima causará uma vulnerabilidade de injeção de SQL, pois o invasor pode simplesmente explorar o fato de que você não higienizou nada.

Um melhor exemplo de uma vers√£o higienizada disso seria a seguinte:

[código php]
// Limpe a entrada do usu√°rio
$ id = mysql real escape string ($ GET [‘id’]);

// Verifique se os dados fornecidos são um dígito
if (! Ctype_digit ((string) $ id)) {
return false;
}

// Use sprintf para garantir que o par√Ęmetro fornecido seja um d√≠gito
$ query = sprintf (‘SELECT table.field
FROM table
WHERE id =% d’, $ id);

// Atribuir a consulta a uma vari√°vel
$ result = mysql_query ($ query);

// Verifique se a consulta foi executada corretamente
if ($ result) {
// Faça algo
}
[/ código php]

Ent√£o, por favor, para o bem de todos os programadores, sempre higienize TODAS as entradas.