Melhor maneira de higienizar POST / GET variáveis ​​de uma forma / URL?

votos
-1

Duplicate possíveis:
Melhor maneira de parar de SQL Injection em PHP

Estou criando um site utilizando PHP que faz uso de um banco de dados MySQL e lida com formas e variáveis ​​a partir do URL. As variáveis ​​estão sendo usando para construir dinamicamente seqüências de consulta SQL. Então eu preciso de uma solução robusta para garantir que ninguém está tentando uma injeção de SQL, etc .. Um amigo meu disse que realmente eu só deve usar procedimentos armazenados para acessar o banco de dados, mas isso não é realmente viável porque o anfitrião eu estou usando doesn 't permitir que estes.

Aqui está o código que estou usando (que é parte de uma classe para embrulhar comandos DB):

...
public function Sanitize($Variable)
{
    if(is_resource($this->ServerConnection))
    {
        $Variable = str_replace(;, , $Variable);
        if(get_magic_quotes_gpc())
        {
            if(ini_get('magic_quotes_sybase'))
            {
                $Variable = str_replace('', ', $Variable);
            }
            else
            {
                $Variable = stripslashes($Variable);
            }
        }
        return mysql_real_escape_string($Variable, $this->ServerConnection);
    }
    else
    {
        $this->PrintError(The Sanitize function is not available as there is no server connection.);
    }
}
...

esta função é robusto o suficiente? Eu deveria estar fazendo outra coisa?

Publicado 19/05/2009 em 18:12
fonte usuário
Em outras línguas...                            


2 respostas

votos
2

Talvez valesse a pena ler este post .

Respondeu 19/05/2009 em 18:18
fonte usuário

votos
1

Qual é a melhor maneira de ...

Não há melhor maneira. Depende do contexto.

.. saneantes POST / GET variáveis ​​de ..

É um modo falho de pensar que os dados são bons ou maus. Dados são apenas dados. É o contexto em que ele é usado que faz com que seja malicioso ou não. Algumas palavras pode ser ruim se você executá-los sem adornos no servidor de banco de dados. Algumas palavras são ruins se você exibi-los aos menores. Trata-se de contexto.

Respondeu 19/05/2009 em 19:02
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more