Evitar sql injection y xss

Marcos Ramirez mramireza en armada.cl
Jue Sep 20 15:41:48 CLT 2007


On Thu, 2007-09-20 at 13:19 -0500, 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

Una regla simple es que JAMAS deberias usar valores obtenidos de
variables en tu sentencia SQL, i.e., evitar cosas del estilo "select
password from usuarios where usuario = $usuario" y usar en su lugar
"select password from usuarios where usuario = ?" 

Usualmente las BD proveen una forma de pasar parametros tales como
pg_execute/pg_query_param en Postgres, oci_bind_by_name en Oracle y asi.
En tu caso, mysql no provee esa funcionalidad y la unica forma de lograr
algo similar es como lo que se recomienda en
<http://cl2.php.net/mysql_query#69365>

> Puedo desarrollar una funcion pero me da temor de que deje algun ueco de 
> seguridad

Estas usando mysql y eso te hace dependiente de las (limitadas)
herramientas que te provee. Si la seguridad es importante para ti,
considera usar postgresql y mejor documentarte sobre buenas practicas de
programacion para empezar.

Saludos
-- 
Marcos Ramirez <mramireza en armada.cl>





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