Independente da missão de nossa saga, seja esta de alegria ou desgraça, o Brasil tem que ser defendido!
        25
        06

        Exterminando com o SQL Injection

        Bem, já desenvolvi diversos sistemas e analisei diversos sistemas com ou sem proteção ao SQL Injection, em todos os sistemas que pude ver a existência dessa proteção, constatei que os programadores faziam esse tratamento de forma repetitiva e sistemática por todo o sistema, esse ano me venho a idéia de deixar o tratamento em um ponto único do sistema! e pronto, não precisava mais me preocupar em proteger o meu sistema em todos os pontos! A técnica que vos apresento logo abaixo utilizei mais tarde como integrante do sistema de proteção do meu framework!
         
         
        Essa é a classe que utilizo para fazer o filtro:
         

        class SeguroPostGet {
            //put your code here



            public function AsseguraPostGet($variavel){

                 $variavel_filtrada = get_magic_quotes_gpc() ? stripslashes($variavel) : $variavel;
                // Se função existir utiliza, se não existir utiliza mysql_escape


                //$variavel_filtrada = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($variavel) : mysql_escape_string($variavel);

                $variavel_filtrada = str_replace("'", "''", $variavel_filtrada);

                 // filtra comandos mysql

                $variavel_filtrada = preg_replace("/(|||||||||||)/i","",$variavel_filtrada);
                $variavel_filtrada = str_ireplace("<script", "&lt;script", $variavel_filtrada);
                $variavel_filtrada = str_ireplace("</script", "&lt;/script", $variavel_filtrada);

                return $variavel_filtrada;
                
            }
        }
         
        Essa é a rotina centralizada que utiliza de recursão para varrer tudo aquilo que vem de POST ou GET :
         
         
         

        $seguro = new SeguroPostGet;

        function tratar(&$variavel) {
           global $seguro;
          
           if (is_array($variavel)) {
              foreach ($variavel as &$v)
                 tratar($v);
           }
           else
              $variavel = $seguro->AsseguraPostGet($variavel);
        }

        tratar($_POST);
        tratar($_GET);

        Comentários

        Tipo de Posts
        Parceiros
        Feed

        Entre com o seu e-mail:

        Sobre

        Rafael Nonato Ribeiro Ferreira, graduado em Análise e Desenvolvimento de Sistemas pela Uninove, programador nas linguagens PHP, JavaScript, JQuery e Java, desenvolvedor web HTML e CSS desenvolve e modela em SGBDs Mysql, PostGreSQL e Oracle, atualmente trabalha como Analista e Desenvolvedor de Sistemas, é um brasileiro, cristão, patriota filiado ao PSOL e com convicções politicas próprias conforme será mostrado em seu futuro site www.constituicaoproposta.com.br, nas horas de folga gosta de tocar seu violão e compor letras de múisca, Torço para o São Paulo e para a Portela.

        © Copyright 2012 NRF Informática Soluções. All Rights Reserved.