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.