Evitar sql injection y xss

Ricardo Mun~oz A. rmunoz en pjud.cl
Lun Sep 24 17:50:06 CLT 2007


Aldrin Gonzalo Martoq Ahumada wrote:
> On 9/24/07, Ricardo Mun~oz A. <rmunoz en pjud.cl> wrote:
>   
>> Raul Perez wrote:
>>     
>>> Tengo mysql 5 y phpp 5 en un servidor con centos
>>> La pregunta es que codigo han implementado ustedes para
>>> asegurar sus aplicaciones en php para evitar injection de sql y xss
>>>       
>> migrar a CakePHP y usar las herramientas que provee, mas info en [1]... ;)
>> en todo caso, en el mismo Cake la validacion de "SQL injection" viene
>> "de fabrica"... por ejemplo en el metodo findAll(), y en todos los otros
>> metodos que sirven para que el framework traiga datos desde la BD, se
>> puede hacer esto:
>> ...
>> $condiciones = array('nombres' => "LIKE %$nombres%", 'otro_campo' => "<>
>> $valor", etc.);
>> $this->set('clientes', $this->Cliente->findAll($condiciones));
>> ...
>> entonces, en findAll() el framework va armar el correspondiente SELECT y
>> validara automaticamente todas las condiciones en el arreglo
>> $condiciones evitando SQL injection, independientemente del motor de BD
>> que uses con el framework.
>> [1] http://www.scribd.com/doc/5546/CakePHP-tutorial-no-3-from-IBM
>>     
>
> arghhhh! Que codigo mas horrible.
>
> No hay algo como JDBC (Java) o DB-API (Python) para PHP ???
>
> Basicamente, algun framework que implementa el siguiente pseudocodigo:
>
> $args[0] = "valor de fi";
> $args[1] = "valor de 'teta";
> $rowlist = query("select value from foo where phi=?0 and tetha=?1", $args)
> foreach ($rowlist as $row) {
>   print $row['value']."\n";
> }
>   

ADOdb para PHP permite hacer lo que mencionas.

que tiene de feo el codigo de CakePHP? es solo tu gusto personal o 
tienes algo concreto que aportar?

-- 
Ricardo Mun~oz A.
Usuario Linux #182825 (counter.li.org)


Más información sobre la lista de distribución Linux