Seguridad en aplicaciones web (Parte I)

Prácticamente todas las aplicaciones en PHP o MySQL están desarrolladas para la web y la web es un sitio peligroso ya que existen diversos métodos para burlas este tipo de aplicaciones.

Podemos agrupar este tema en dos ideas:

INSEGURIDAD - SEGURIDAD

¿Por qué hay que validar los datos de entrada?


Todos los datos de entrada están contaminados, así el dato que se incluye este muy limpio de todas formas debemos añadir seguridad y limpiar los datos considerando:

  • Evitar comportamientos no esperados de la aplicación.
  • Evitar ganar acceso a una aplicación a la que no está autorizado.
  • Evitar que la aplicación “se rompa” de manera malintencionada.

Register Globals


Es una directiva de configuración que automáticamente inyecta variables en el script. Desactivado por defecto desde PHP 4.2.0 y no debería activarse.

Un ejemplo de un Formulario

Validación numérica


Todos los datos recibidos por PHP (GET/POST/COOKIE) son cadenas de texto. Hay que convertirlos a números para que sea más eficiente y menos peligroso.

Deben ser convertidos a números mediante un casting:

Validación de texto


PHP viene por defecto con CTYPE, una extensión que permite de manera cómoda validar cadenas de texto. Y otras muchas más funciones.

Validación complejas


¿Como validar un email, una URL, una IP, un DNI, una fecha? Expresiones regulares. No hace falta saber expresiones regulares, sólo saber dónde encontrarlas.

Asegurar formularios


Entre las maneras más eficaces podemos destacar:

  • Deshabilitar Javascript.
  • Enviar formularios desde web.
  • Instalando Firebug.

¿En que consiste todo esto?


Evitar que el código generado por nuestra aplicación pueda resultar dañino, dependiendo del dónde imprimamos la información las reglas de escapado son diferentes.

Escapando datos para generar HTML

La solución para todo es htmlentities()

Ejemplo: Escapando datos para generar SQL

La solución para escapar datos en MySQL es *_escape_string()

Ejemplo: Bueno hasta aquí la pimera parte de este tutorial, Pueden leer la segunda parte.

Comenta con Facebook

1 comentario

                   

¿Quieres mantenerte informado sobre este artículo? Descarga nuestro Software en tu PC▼