miércoles, 12 de agosto de 2009

Consejos básicos de seguridad en Oscommerce 2

Mi amigo Jordi Oller me recuerda que en su blog (recomiendo leerlo) tiene un post sobre seguridad en Oscommerce que resulta muy adecuado como segundo nivel de protección, aunque ahora sí que empezamos a meternos más en temas técnicos de programación. Aquí os dejo el post completo y el link al original.

Volviendo un poco a la seriedad y siendo hoy el Día internacional de la seguridad, me estaba planteando en crear una pequeña primera Guia de Seguridad para tiendas online, que básicamente se podría portar a casi cualquier aplicación PHP.

Principales archivos a modificar:

php.ini (Configuración general del PHP, si phpsuexec activado, tendremos que editarlo en la carpeta de la aplicación que vayamos a programar)

httpd.conf (configuración del apache)

.htaccess (sobreescribir las directivas del php.ini si nos lo permiten y no está activado phpsuexec)

Para tener una primera vision de la configuración general, y valorar si tenemos puntos comprometidos, deberemos crear un archivo php con el siguiente código y visitarlo con nuestro navegador:

() ?>

Pasos a seguir:

1) No mostrar errores a nuestros intrusos, para ello definiremos en el .htaccess

[sourcecode=php]
php_flag display_errors Off
php_flag log_errors On
php_value error_log “Ruta completa al fichero de log”
[/sourcecode]

- Que no se muestren los errores en pantalla, y cambiarlo a que se guarden en la maquina en un fichero local solo accesible para el webmaster.

2) El famoso Register globals que por defecto ahora viene desactivado. En las tiendasoscommerce a partir de la RC1 ya no hace falta tenerla activada (en MS2 y anteriores si), por lo que ya no tendremos ese problema de configuración. Tenerlo activo no es un problema de seguridad en sí, si el código está bien implementado, pero si por defecto ya viene desactivado, estamos obligados a no jugar con “fuego” al poder pasar parámetros por GET y POST dentro de las variables globales de nuestra aplicación. Para desactivar esta directiva:

[sourcecode=php]
php_flag register_globals Off
[/sourcecode]

3) Usar SAFE_MODE o no… en mi opinión solo és útil para servidores compartidos, donde hay varios usuarios, y así evitar que unos accedan o incluyan los ficheros de los otros. El único y gran problema es que al tenerlo activo, tendremos incompatibilidades con otros módulos y funcionalidades. Habría que valorar si es realmente necesario tenerlo activo en nuestro servidor.

4) Doble protección de nuestros ficheros de administración. Por ejemplo… toda la carpeta administrador o backend de la aplicación implementar protección mediante formulario de login, y además añadir protección mediante apache desde nuestro panel de control de hosting o a mano.

5) Denegar el acceso a nuestros directorios y ficheros de configuración o “sensibles” con la siguiente instrucción en el .htaccess (dentro del directorio donde se encuentran los archivos a proteger)

Proteger ficheros php:

[sourcecode=php]

Order Deny,Allow
Deny from all

[/sourcecode]

Proteger todos los ficheros del directorio que se especifique:

[sourcecode=php]

Order Allow,Deny

[/sourcecode]

6) Sistemas de pago. El más sensible sin duda es la tarjeta de crédito. Los más seguros son los que usan webservices, y sin salir de la web, pero a día de hoy solo es viable con BBVA y algún otro banco. Mi recomendación es usar el sistema TPV de servired, que podremos encontrar en casi todas las cajas y caixas (La caixa, Caixa catalunya, Caja madrid, etc) que através de una firma Sha1 completa ampliada y una clave personal se transmite la información de forma “segura” entre la página del banco (quien se encargará por nosotros de recoger los datos de la tarjeta y comprobar su veracidad) y nuestra tienda, que será la que reciba la confirmación y autorización del pago.


Fuente Aquí

No hay comentarios:

Publicar un comentario