Seguridad Php (3ª Parte)

Por el 23 de mayo de 2006

en: Programacion

Manipulación de archivos

Algunos sitios tienen URLs parecidas a esto:

index.php?page=contactus.html

El archivo “index.php” incluye simplemente el archivo de “contactus.html”, y el sitio parece funcionar. Sin embargo, el usuario puede cambiar muy fácilmente el pedacito de “contactus.html” por cualquier cosa que le apetezca. Por ejemplo, si estás utilizando el mod_auth de Apache para proteger archivos y para guadar tu contraseña en el archivo llamado ” .htpasswd ” (el nombre convencional), si un usuario quisiera visitar esa URL, la respuesta haría salir el nombre de usuario y contraseña:

index.php?page=.htpasswd

Cambiando la URL, en algunos sistemas, para referirse a un archivo u otro en el servidor, podrían incluso funcionar PHP que han escrito en tu sitio. ¿Asustado? Debes estarlo. Afortunadamente, otra vez, esto es razonablemente fácil de solucionar. Primero, cerciorate de haber fijado correctamente el “open_basedir” en tu archivo de php.ini, y fijar “allow_url_fopen” a “OFF”. Eso prevendrá la mayor parte de estas clases de ataques previniendo la inclusión de archivos alejados y de ficheros del sistema. Después puedes comprobar el archivo solicitado contra una lista de archivos válidos. Si limitas los archivos que se pueden alcanzar usando esta salida.

Previsibilidad

Imaginémosnos por un segundo que tu sitio ha atraído la atención de una persona malévola. Esta mala persona desea entrar dentro de tu área de administración, y cambia todas tus descripciones de los productos a “este producto apesta”. Aventuraría que su primer paso será ir a http://www.tusitio.com/admin/ – como primera opción. La colocación de tus archivos y carpetas lugares previsibles hace la vida de los hackers un poquito más fácil.
Con esto en mente, cerciorarte de que nombres tus archivos y carpetas delicados esten en lugares no muy previsibles. Poner tu área de administración en http://www.tusitio.com/jsfh8sfsifuhsi8392/ pudo hacerlo más duro al menos al mecanografiarlo, pero agrega una capa adicional de seguridad a tu sitio. Escoger algo fácil de memorizar por supuesto si necesitas una dirección que puedes recordar rápidamente, pero no escoger el “admin” o “administración” (o tu nombre de usuario o contraseña).Por lo tanto mi consejo es escoge algo inusual.

Igual se aplica a los nombres de usuario y a las contraseñas. Si tienes un área de administracion, no utilizes “admin” como nombre de usuario. Escoge algo mas complicado de averiguar, si pudiera ser ambas con letras y números debido a que muchos hackers utilizan el llamado “ataque del diccionario”, intentando cada palabra de un diccionario como contraseña hasta que encuentran un login que funcione ,la adición de un par de dígitos al final de una contraseña hace este tipo de ataque inútil. Es también sabio cambiar tu contraseña bastante regularmente (cada mes o dos) y si es posible obligar a tus usuario a hacerlo de igual manera.

Finalmente, cerciorarte de que tus mensajes de error no den pistas. Si tu área de administracion da un mensaje de error que dice el “nombre de usuario desconocido” cuando se introduce mal un nombre de usuario y “contraseña incorrecta” cuando se introduce la contraseña incorrecta, un usuario malévolo sabrá cuándo ha introducido un nombre de usuario o una contraseña incorrecta. Usar “un mensaje de error genérico al fallo de conexión” para ambos registros para que un usuario malévolo no tenga ni idea si es el nombre o la contraseña lo que ha introducido mal.

En definitiva, mi consejo es que debes ser totalmente paranoico

Si asumes que tu sitio nunca sera atacado, o que nunca tendra que hacer frente a problemas de este tipo despues cuando estos lleguen estaras realmente en apuros. Si, por otra parte, asumes que cada visitante a tu sitio haria lo que fuera por romper tu sistema y estas permanentemente en guerra, te ayudarás a mantener tu sitio seguro, y estaras preparado en caso de que vayan mal las cosas

Fuente en Ingles: Good php tutorials

1 Respuesta a Seguridad Php (3ª Parte)

Avatar

danielsan2099

23 de agosto de 2011 a las 2:48 am

Excelente ayuda amigo, me hacia falta todo esto de la seguridad para mi sitio.

PD: Mi sitio web es una linda broma XD

Dejar un comentario