1. Introdução à função IS_Numberic
Alguns programas domésticos do CMS usaram a função IS_Numberic.
bool is_numeric (misto $ var)
Retorna true se o var é uma string numérica e numérica, caso contrário, retorna false.
2. A função é segura?
Em seguida, vamos dar uma olhada em um exemplo para ilustrar se essa função é segura.
A cópia do código é a seguinte: $ s = is_numeric ($ _ get ['s'])? $ _ Get ['s']: 0;
$ sql = "inserir em teste (tipo) valores ($ s);";
mysql_query ($ sql);
O programa de fragmentos acima determina se o parâmetro S é um número e retorna um número, se não for, retorne 0 e o traz para a consulta do banco de dados. (Dessa forma, as declarações SQL não podem ser construídas)
Convertemos '1 ou 1' em hexadecimal 0x31206f722031 como o valor do parâmetro S
Depois que o programa é executado, consultamos o banco de dados para ver, como mostrado na figura abaixo:
Se você re-interpar os campos desta tabela e não filtrar e trazer outra instrução SQL, ela causará 2 injeções.
3. Resumo
Tente não usar esta função. 1 ou 1 não aparecerá.