Cómo Solucionar el Error 'Exception: Local file is no longer allowed' en Magento 2 de Forma Definitiva

Cómo Solucionar el Error 'Exception: Local file is no longer allowed' en Magento 2 de Forma Definitiva
Anuncio relacionado

Introducción

El error Exception: Local file is no longer allowed en Magento 2 es un problema común de seguridad que suele aparecer tras actualizar la plataforma o al intentar importar datos, procesar catálogos o utilizar módulos que manipulan archivos directamente en el sistema de archivos del servidor. Por motivos de seguridad y para prevenir vulnerabilidades de tipo LFI (Local File Inclusion), Magento restringe ciertas operaciones con archivos locales si no están debidamente autorizadas o si las rutas no cumplen con las políticas estrictas del framework.

Causas Principales del Error

Este fallo se desencadena principalmente por las siguientes razones:

  • Intentar cargar un archivo desde una ruta absoluta que no está permitida por la clase Magento\Framework\Filesystem\Directory\Read.
  • Cambios en las políticas de seguridad implementadas en parches recientes o versiones actualizadas de Magento 2.
  • Configuraciones incorrectas en módulos de terceros que intentan leer archivos CSV o XML fuera de los directorios permitidos (var, pub, media).

Método 1: Validar y Utilizar Directorios Permitidos (Directory List)

La forma más recomendada por Adobe/Magento para solucionar este problema sin comprometer la seguridad del sitio es asegurar que tu código o el módulo afectado utilice los directorios permitidos por la instancia.

  1. Identifica el archivo y la línea de código que lanza la excepción revisando el archivo var/log/exception.log.
  2. Modifica la llamada para utilizar las instancias de directorio predefinidas de Magento en lugar de rutas absolutas crudas.
  3. Ejemplo de código correcto utilizando la clase DirectoryList:
use Magento\Framework\App\Filesystem\DirectoryList;

protected $directoryList;

public function __construct(DirectoryList $directoryList) {
    $this->directoryList = $directoryList;
}

public function getPath() {
    return $this->directoryList->getPath(DirectoryList::VAR_DIR);
}

Método 2: Aplicar la Solución a Través de Plugins o Sobrescritura en Módulos de Terceros

Si el error proviene de un módulo comercial o gratuito instalado en tu tienda:

  1. Contacta al desarrollador para obtener una versión compatible con la última versión de tu Magento 2.
  2. Si necesitas una solución rápida, puedes crear un plugin (interceptor) para interceptar el método de validación de archivos y permitir la ruta específica bajo tu propio riesgo de seguridad.
  3. Limpia la caché de Magento ejecutando el siguiente comando en tu terminal SSH: bin/magento cache:clean.

Conclusión

El error Exception: Local file is no longer allowed es una medida de protección de Magento que no debe ignorarse desactivando salv7aguardas globales. Siguiendo las buenas prácticas de desarrollo y utilizando los objetos de gestión de archivos del framework, podrás solucionar este inconveniente de raíz y mantener tu tienda e-commerce segura y funcional.

Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Hardware

Cómo Solucionar el Error de Recurso GPU No Disponible en Hardware de Forma Definitiva

Descubre por qué tu sistema operativo deja de reconocer la tarjeta gráfica y aprende a solucionarlo definitivamente con métodos efectivos paso a paso.

Leer guía completa →
Linux

Cómo Solucionar el Error 'No space left on device' en Linux de Forma Definitiva

Aprende a resolver el frustrante error de falta de espacio en Linux. Te mostramos cómo identificar archivos ocultos y solucionar el agotamiento de inodos.

Leer guía completa →
Apps

Cómo Solucionar el Error de Pantalla Negra en WhatsApp Desktop Definitivamente

¿WhatsApp Desktop se queda en blanco o negro al abrirlo? Aprende a solucionar este fallo gráfico común de manera rápida y definitiva.

Leer guía completa →