osCatalogo


Mover configure.php fuera del directorio público. osCommerce

Posted in Seguridad por nicko107 en 11 febrero 2009
Tags: , , , ,

Una forma sencilla de proteger los archivos de configuración de osCommerce, configure.php, es mover el contenido de estos archivos a otros archivos que estén fuera del directorio público de la tienda osCommerce.

Para hacer esto, tendremos que tener acceso a un directorio superior al directorio público en el servidor donde tengamos los archivos de osCommerce.

En esta guía podremos hacer esta modificación de forma sencilla.

1. Copia de Seguridad de archivos y Base de datos.

Primero antes de hacer cualquier cambio o modificación hacer una copia de seguridad de sus archivos y base de datos.

En particular hacer una copia de seguridad de los archivos:

catalog/includes/configure.php
catalog/admin/includes/configure.php

2. Errores o confusiones posibles

Los archivos que modificaremos son los indicados en el punto anterior:

catalog/includes/configure.php
catalog/admin/includes/configure.php

Se modificarán moviendo su código a dos archivos externos al directorio público, pero estos dos archivos configure.php no deben quitarse del catalogo ni cambiarse de nombre. Se les incluirá una linea de código que indicará que tienen que leer los datos de los dos archivos nuevos que crearemos fuera del directorio público.

No confundirlos, este archivo:
catalog/includes/configure.php
contiene distinto código que este otro archivo:
catalog/admin/includes/configure.php
El segundo está en el directorio admin y los dos contienen código distinto.

No confundir el path absoluto con la dirección web ni colocar el que incluimos aquí de ejemplo en las instrucciones.

El path absoluto a un archivo o directorio es la ruta a ese archivo o directorio dentro del servidor web que lo hospeda, en el caso de windows un archivo tendrá la siguiente ruta:

C:/mis documentos/archivo.txt

En el caso de servidores web el formato es de tipo UNIX y es algo similar a este:

/directorio/directorio/public_html/archivo.txt

Esa ruta variará de un servidor a otro y si no lo conocemos podemos averiguarla desde la misma administración de osCommerce, en el menú Herramientas, el sub-menú Archivos, debajo del título dentro de la página encontraremos la ruta del path absoluto a los archivos del catalogo.

Directorio público y directorio privado:

El directorio público es el directorio que contiene los archivos de acceso via web, sería por ejemplo, para mostrar una página index.html que estuviera en el dominio de nuestro sitio:

http://www.nuestrodominio.com/index.html

Este archivo index.html, estaría en el directorio raíz público al acceder mediante FTP al servidor que contiene nuestros archivos:

/public_html/index.html

(en unos servidores ese directorio público puede tener otro nombre, www, httpweb,…)

El directorio privado sería fuera de ese directorio public_html, por ejemplo tener un archivo archivo.txt en:

/archivo.txt – este archivo no sería visible via web, solo es visible para nosotros mediante FTP.
/public_html/archivo.txt – este archivo es visible via web, se vería al visitar la dirección http://www.dominio.com/archivo.txt

Directorio publico y privado. Mover configure fuera de html_public

3. Copiar datos del archivo configure.php

Copiar todo el código incluido en el archivo configure.php:

catalogo/includes/configure.php

4. Mover los datos a un archivo externo a public_html

Salimos fuera del directorio público, y creamos un nuevo archivo que debe tener un nombre que solo nosostros conozcamos, en este ejemplo lo hemos llamado catconfig.php, por seguridad escoga otro.

/catconfig.php

En ese archivo pegamos el contenido completo del archivo configure.php del paso anterior.

Y compruebe que no queda espacios en blancos antes de la etiqueta inicial:

<?php

ni después de la etiqueta final:

?>

5. Permisos CHMOD del nuevo configure

Asignar permisos CHMOD de solo lectura a ese nuevo fichero que acabamos de crear.

Información de ayuda en:
http://www.oscatalogo.com/asignar-permisos-chmod-a-un-archivo-o-directorio-con-el-programa-ftp-filezilla/

/catconfig.php – CHMOD 400 ó 444 Solo lectura

(con Filezilla, botón derecho sobre el archivo y seleccione Atributos de archivos o cambiar permisos si está usando un programa FTP)

* Si más adelante necesita hacer cambios en el fichero, asignele permisos de escritura en ese momento para poder hacer los cambios.

6. Path absoluto del nuevo configure.

Averiguar el path absoluto a ese nuevo archivo en el servidor web donde lo tiene guardado

* En la administración de osCommerce, en Herramientas > Archivos, debajo del titulo de la página podemos ver la ruta al catalogo, tan solo habria que quitarle los últimos directorios.
Por ejemplo si aparece esta ruta:
/directorio/directorio/usuario/public_html/catalogo/
la ruta a ese nuevo fichero sería:
/directorio/directorio/usuario/catconfig.php

Información tambien en el siguiente enlace:
http://www.oscatalogo.com/path-absoluto-de-un-directorio-o-archivo-en-php/

7. Quitar datos de includes/configure.php

Una vez hayamos hecho los pasos anteriores podemos quitar con seguridad los datos de ese archivo aunque colocando la indicación para que lea los datos desde el otro archivo.

editar el archivo:

/public_html/(catalogo)/includes/configure.php

sustituir su contenido completo por lo siguiente:

antes en ese código hacer los siguientes cambios:

>> cambiar catconfig.php por el nombre de su fichero
>> cambiar path_absoluto por la ruta absoluta a su fichero en el servidor web, vista en el paso 6

en el ejemplo anterior un ejemplo sería::
include(‘/directorio/directorio/usuario/catconfig.php’);

*** NO DEJAR NINGUN ESPACIO EN BLANCO ANTES DE:
<?php
O DESPUES DE:
?>

8. Asignar permisos CHMOD solo lectura a configure.php

Volvemos a asignar permisos de solo lectura a ese archivo por seguridad:

/public_html/(catalogo)/includes/configure.php ← CHMOD 444

9. Comprobación de resultados.

Compruebar visitando el catalogo que funciona correctamente después de los cambios realizados.

Posibles errores

Warning: include(/../../catconf.php) [function.include]: failed to open stream: No such file or directory in /../../public_html/catalogo/includes/configure.php on line 2

posibles causas:

  • En el paso 7 está mal la ruta al nuevo fichero que contiene los datos de configuración.
  • O el path absoluto está mal, compruebe denuevo cual es el path absoluto a ese archivo.
  • El nombre del fichero no esta bien escrito en el paso 7.
  • Compruebe que no dejara un espacio antes de la etiqueta inicial <?php o después de la etiqueta final ?>
Warning: Cannot modify header information - headers already sent by (output started at /../../public_html/catalogo/includes/configuration.php:2) in /../../public_html/index.php on line

posibles causas:

Compruebe que no dejara un espacio antes de la etiqueta inicial <?php o después de la etiqueta final ?>

 

Si todo ha ido correctamente ya tiene los datos de configuración de la parte pública de su catalogo fuera del directorio público!

 

El siguiente paso sería hacer lo mismo pero para el archivo configure.php del directorio admin:

/public_html/(catalogo)/admin/includes/configure.php

10. Copiar datos del configure.php del admin.

Copiar todo el contenido del siguiente archivo, pero no lo borre:

/public_html/(catalogo)/admin/includes/configure.php

(fijarse en que es el que está dentro del directorio admin / includes / )

11. Mover datos de configuración fuera de public_html

vaya fuera del directorio público.

y cree un nuevo archivo, con un nombre que solo conozca usted

(en este ejemplo lo hemos llamado admconfig.php)

/admconfig.php

y pegue en ese fichero el contenido integro del fichero admin / includes / configure.php que copió en el paso anterior.

(Y compruebe que no queda espacios en blancos antes de la etiqueta inicial: <?php ni después de la etiqueta final: ?>)

12. Permisos CHMOD del nuevo configure.

asignele permisos CHMOD de solo lectura a ese nuevo fichero que acaba de crear

/admconfig.php – CHMOD 400 ó 444

13. Quitar datos de admin/includes/configure.php

editar el archivo:

/public_html/(catalogo)/admin/includes/configure.php

sustituir su contenido por lo siguiente:

antes, cambie admconfig.php por el nombre de su fichero
antes, cambie path_absoluto por la ruta absoluta a su fichero
NO DEJAR NINGUN ESPACIO EN BLANCO ANTES DE: <?php NI DESPUES DE: ?>

14. Arginar permisos de lectura.

denuevo asignele permisos CHMOD de solo lectura al archivo configure.php

/public_html/(catalogo)/admin/includes/configure.php ← CHMOD 444

15. Comprobación

Por último, compruebe visitando la administración del catalogo para ver si funciona correctamente después de los cambios realizados

 

Futuros cambios en el admin:

para realizar cambios en ese archivo tendrá que hacerlos manualmente sobre el fichero que creó fuera del directorio publico.

Antes asigne permisos de escritura para el archivo de configuración que tiene fuera del directorio publico
haga las modificaciones
asigne permisos CHMOD de solo lectura a ese archivo

Los archivos:
catalog/includes/configure.php
catalog/admin/includes/configure.php
deben seguir en el catalogo, con permisos de solo lectura.

 

Variantes: Crear un directorio privado

1. Una variante es crear un directorio privado (private_html) y colocar dentro los archivos que contienen los datos de los configure.php

/private_html/catconfig.php

La ventaja es que podemos agregar mas seguridad a ese directorio

2. y los nuevos archivo con los datos de configuración muevalos dentro de ese nuevo directorio (tenga en cuenta que la ruta cambiará y tendrá que modificarla en el archivo configure.php despues)

Y asignele permisos CHMOD de solo lectura a los nuevos archivos y a ese nuevo directorio fuera de la parte pública:

/private_html/catconfig.php – CHMOD 400 ó 444
/private_html/ – CHMOD 500 ó 555

3. usar el archivo .htaccess

Requerirá que esté permitido el uso de archivos .htaccess en su servidor y que esté permito las siguientes directivas de Apache que se indican a continuación:

cree un fichero llamado: .htaccess

dentro del directorio privado que acaba de crear (private_html en este ejemplo):

/private_html/.htaccess

agregue el siguiente código a ese archivo .htaccess:

Options – Indexes


deny from all



Order allow,deny
deny from all



order allow,deny
allow aqui_poner_su_ip

antes de poner ese código hágale los siguientes cambios:

  • en la primera línea cambie el nombre del archivo catconfig.php por el suyo,
  • en la penúltima línea cambie: aqui_poner_su_ip por su dirección IP, del tipo: 123.123.123.123
    Si busca “mi ip” en Google encontrará paginas que le mostrarán su IP
    (*** este tercer bloque del código requerirá que usted disponga de una IP estática),
  • guarde ese archivo con nombre .htaccess
  • asignele permisos CHMOD de solo lectura

La primera linea indica que no se liste el contenido de ese directorio.
El segundo bloque de código es para que en ningún caso se muestre el contenido del archivo de configuración que acabamos de crear.
El tercero no permite ver el contenido del archivo .htaccess
El cuarto solo permite ver ese directorio desde una conexión con la IP nuestra que indiquemos ahí.

Si el servidor no puede leer los datos de configuración en los nuevos archivos es posible que no permita alguna de esas directivas, si no sabe cual es compruebe quitando una a una del archivo .htaccess

 

Anuncios

Una respuesta to 'Mover configure.php fuera del directorio público. osCommerce'

Subscribe to comments with RSS o TrackBack to 'Mover configure.php fuera del directorio público. osCommerce'.

  1. pcbasura said,

    Hola. Estoy comenzando a conocer esta plantilla y en distintos sitios he leido sobre métodos y técnicas para proteger los archivos configure,php pero no he podido encontrar la o las razones por las que es conveniente. ¿Puedes indicarme que podría pasar si no se protegen estos archivos y se dejan como la plantilla de inicio la coloca?

    Gracias 🙂


Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: