Evitar sql injection y xss

Aldrin Gonzalo Martoq Ahumada amartoq en dcc.uchile.cl
Lun Sep 24 16:59:06 CLT 2007


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";
}



-- 
Aldrin Martoq


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