Evitar sql injection y xss

Alvaro Herrera alvherre en alvh.no-ip.org
Mie Sep 26 18:59:44 CLT 2007


Rodrigo Fuentealba escribió:

> > porque todavía puedes quemar el equipo.
> > Si puedes ver TV y escuchar CDs, super bien, pero cuando me lo queme el
> > vecino que me odia no me voy a sentir muy feliz.
> 
> Sobre lo que alega Ricardo: lo mismo ocurrió cuando a PostgreSQL le
> cambiaron el valor default_with_oids a "off". Leí que algunos usaban
> el OID como primary key dentro de sus modelos de datos, y que
> reclamaron aún cuando la razón de este cambio es que usar el OID como
> PK es para evitar una mala práctica de programación.

Este es un mal ejemplo, porque el cambio de OID es simplemente una
optimizacion.  Si lo necesitas, simplemente ponlo en ON y todo seguira
funcionando OK.  No hay ningun hoyo nuevo de seguridad.

El problema ocurre cuando el codigo anterior sigue funcionando sin
cambios, por lo tanto el usuario puede hacer un upgrade, su codigo
seguira funcionando, y no hara nada.  Dado que el codigo se interpreta
de una manera equivalente, el problema de seguridad persiste -- con la
diferencia de que "PHP5 es seguro", por lo tanto el usuario se queda con
la falsa sensacion de seguridad.


> Lo que ocurre en PostgreSQL cada vez que se cambia de versión es que
> debes seguir un procedimiento antes de reemplazar el motor 7.4.13 por
> el motor de 8.2.5;

Dump/reload.  En PHP no tienes que hacer nada: tomas el codigo viejo, lo
pones en el servidor nuevo, y listo.  Sigue funcionando.


> en PHP es exactamente lo mismo, la documentación
> existe sobre qué hacer y en qué fijarse, pero en general los usuarios
> de PHP no tienen conciencia de ello. ¿de quién es la culpa, si les
> hemos dicho que lo lean?

Obviamente es de quien diseñó PHP4.  Y pudiendo arreglarlo (rompiendo la
compatibilidad hacia atras y por lo tanto forzando a los usuarios a
cambiar el codigo), no lo hacen.

En Postgres, si el problema de seguridad requiere un cambio en el
codigo que significa perdida de compatibilidad hacia atras, se hace.  La
compatibilidad hacia atras es muy importante y se valora mucho, pero la
seguridad se valora mucho mas.

-- 
Alvaro Herrera                        http://www.advogato.org/person/alvherre
"La libertad es como el dinero; el que no la sabe emplear la pierde" (Alvarez)


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