Follow By Email

miércoles, 25 de enero de 2012

Seguridad para la web - Tips de ayuda !


   Hoy ocurrió una pequeña brecha de seguridad en al empresa a la cual le estoy prestando servicios de consultoría, y después de verificar y reforzar algunas cosas decidí compartir y debatir algunas buenas practicas de seguridad al momento de realizar desarrollos Web.

- Si vas a entregar permisos de escritura o ejecución procura habilitar solo una carpeta de tu servidor para tener mayor control sobre estos archivos. Además limita y valida los tipos y tamaños de archivos con funciones como getimagesize o fileinfo.

- Para los datos delicados siempre fabrica un archivo properties que contenga encriptación de datos

- Entrega los permisos básicos (mínimos) para el usuario de la BD

- Si usas algún CMS cambia los prefijos de las tablas. Los sistemas de gestión de contenido instalan tablas por defecto y al conocer los nombres de estas soy muy vulnerables a ataques de inyección SQL.

- Siempre valida los datos importantes en el servidor. Aun que también realicemos validaciones en el cliente.

- Protege las carpetas que contengan archivos delicados con la combinación htaccess y htpasswd (eso si, asegurare de dejar el archivo htpasswd fuera de la raíz del sitio). A proposito un muy buen tuto de cristalab que muestra la utilización de esta tecnica de encabezados: http://www.cristalab.com/tutoriales/proteger-carpetas-con-.htaccess-y-.htpasswd-c213l/ .

- Si usas plugins, librerías, frameworks, estándares, aplicaciones, etc. procura no manipular los archivos base para extender la funcionalidad de tu aplicación. Recuerda que siempre es necesario actualizar y muchas de las actualizaciones se deben a motivos de seguridad.

- No confíes en los datos que los usuarios envían. Trata siempre cualquier información que provenga desde fuera como un posible dato malicioso.

- Utiliza los nuevos estándares Web. Hay muchos tags y practicas Web que no son las correctas, es por eso que muchos navegadores están lentamente quitando soporte a algunas practicas e incorporando otras.

- Si el sitio contiene mucha información delicada utiliza el protocolo https y permite el acceso a este solo con ssh keys. Si quieres ingresar al sitio o a sus archivos utiliza algún cliente SSH y SFTP.

- Cuando desarrolles intranets intenta que estas en realidad funcionen a nivel interno de la corporación. Si existe alguna excepción utiliza VPN, o aún mejor utiliza Open VPN

- Y aun que suene obvio utiliza sistemas de captcha, quita los meta y utiliza contraseñas con seguridad fuerte.

Se que hay muchas mas buenas practicas de seguridad, pero me aburrí de redactar XD, así que si tienen algún dato rosa no duden en compartirlo.

PDTA: Algunos de los tips que entrego funcionan solo sobre PHP, pero cualquier lenguaje servidor tiene sus propias implementaciones.


Fuente: Felipe Campos Clarke - Ingeniero en Informática y Analista en Sistemas

1 comentario: