Cómo mejorar la seguridad en mi sitio hecho con OpenCart

De forma inherente, OpenCart no es completamente seguro debido al hecho mismo que es de código abierto y cualquier persona interesada puede conocer su código interno y su estructura de carpetas, y eso mismo lo hace susceptible a ataques. Aquí daremos algunos consejos sobre como hacer más seguro tu sitio web hecho con OpenCart.

Pasos esenciales después de una instalación de OpenCart

1. Elimina el directorio /install/
2. Protege tu archivo de configuración config.php tanto en el directorio raíz como en el directorio /admin/ con CHMOD 0444.

Crea una página de error 404

Crea una página de error con el nombre de 404.html y guárdala en el directorio raíz, el cual es el directorio principal de tu tienda OpenCart. Puedes colocar lo que desees en el archivo. Este archivo se mostrará a cualquier persona que intenta accesar algo que no existe en tu sitio o quiera accesar de forma inapropiada algún archivo.

Asegura la carpeta /admin/

1. Para que sea más difícil de detectar, es importante que renombres el directorio /admin/. Coloca un nombre que no sea tan común, el que desees. Como punto siguiente, edita el archivo /admin/config.php y reemplaza el nombre de admin con el que colocaste. Por lo general tenemos allí 5 veces admin, cámbialas todas.
2. Proteger con password tu carpeta admin o el nombre que hayas definido con htpasswd. En cPanel esto significa utilizar la herramienta de Proteger Directorio con Password. Esto significará que te pedirá un primer usuario y password (que es el que crearás) y el usuario y password normal para la administración de OpenCart.

Asegura la carpeta /system/

Algunos archivos son de acceso abierto por defecto. Si tienes instalado OpenCart en el directorio raíz, entonces puedes visitar http://www.tudominio.com/system/logs/error.log  para descargar el log de errores en tu sitio, incluso como usuario público. Debes proteger este tipo de archivos, por lo que es indispensable crear un archivo .htaccess con el código siguiente:

<Files *.*>
Order Deny,Allow
Deny from all
</Files>

Coloca ese archivo .htaccess en los dos directorios siguientes:

/system/
/system/logs/

Asegura la carpeta /catalog/

La carpeta catalog contiene tus imágenes, archivos javascript, así como archivos de tema. Aparte de estos archivos, nada más debiera poderse accesar como usuario público. Sin embargo, no es el caso. Visita http://www.midominio.com/catalog/controller/account/address.php y podrás constatar que el archivo en cuestión desea ejecutarse, lo cual representa un riesgo. Ya sea que un usuario de tu sitio obtenga más pistas sobre tu sistema a partir de estos códigos de error o alguien pueda subir su propio código malicioso en forma de archivo PHP y tu sitio estará ya en un peligro eminente.

La solución aquí es que coloques un archivo .htaccess en la carpeta /catalog/ con el código siguiente:

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !^(.+)\.jpg$
RewriteCond %{REQUEST_FILENAME} !^(.+)\.jpeg$
RewriteCond %{REQUEST_FILENAME} !^(.+)\.png$
RewriteCond %{REQUEST_FILENAME} !^(.+)\.gif$
RewriteCond %{REQUEST_FILENAME} !^(.+)\.css$
RewriteCond %{REQUEST_FILENAME} !^(.+)\.js$
RewriteRule ^(.+)$ /404.html [NC]

De esta manera, cualquier otro tipo de archivo distinto a jpg, jpeg, png, gif, css y js serán bloqueados. Así, cualquier persona que trata de accesar archivos PHP de forma directa serán redirigidos hacia el archivo 404.html de error.

Si utilizas en el directorio /catalog/ o /image/ algún otro tipo de extensión, como por ejemplo .swf o .flv, entonces deberás añadir otra línea más al código que aquí te damos especificando la extensión.

Esperamos que esta información sea útil para proteger tu sitio, no olvides visitarnos.