Magento recomienda no usar plantillas a través de enlaces simbólicos:
Advanced > Developer > Template Settings > Allow Symlinks
¡Advertencia! No se recomienda habilitar esta función en entornos de producción porque representa un riesgo potencial de seguridad.
Hasta hoy no puedo ver ningún riesgo aquí.
- ¿Cual es el riesgo?
Respuestas:
Los enlaces simbólicos no son necesariamente malos.
En primer lugar: si intenta abrir un objetivo de enlace simbólico, los permisos de archivo del objetivo están vigentes. Si no tienes permiso para leer / escribir / ejecutar el objetivo del enlace simbólico, no pasa nada.
Pero: es posible que pueda ejecutar archivos fuera de la raíz de su documento (a veces eso es realmente lo que quiere hacer con ellos, ¿verdad?). El problema puede ocurrir si tu estás no en un entorno suEXEC y tienen una
apache
owww-data
usuario en un alojamiento compartido, que está a cargo del servicio de archivos de diferentes cuentas. El usuario de su sistema no puede acceder a los archivos de otro cliente, pero elapache/www-data
usuario tendrá principalmente derechos de lectura en todas las cuentas compartidas. Este podría ser un escenario en el que un usuario puede acceder a los archivos de otro usuario en un host compartido. No con su propio usuario, sino accediendo al archivo a través del navegador con elapache/www-data
usuario. Para resumir: en este escenario, podrá acceder a los archivos de otros usuarios => malo.El siguiente inconveniente es que un atacante podría crear enlaces simbólicos, también a archivos como / etc / passwd, ..., descargar estos datos y continuar con esta información. Esto no solo depende del enlace simbólico, sino también de una configuración incorrecta del servidor (donde el acceso a estos archivos es estrictamente limitado). Por lo tanto, no usar enlaces simbólicos evita algunos ataques más posibles.
No se trata solo de que el enlace simbólico sea un riesgo de seguridad, sino un problema de configuración del servidor.
fuente
app/design
carpeta, cuando se combinan con otros exploits menores, podría ser utilizado por un usuario administrador para la escalada de privilegios y otras vulnerabilidades del servidor.SymLinksIfOwnerMatch
se usa esa opción en lugar deFollowSymlinks
.sí lo son, es por eso que los servidores web generalmente también tienen una configuración de "no seguir enlaces simbólicos" o al menos un "solo seguir enlaces simbólicos de destino con el mismo usuario" Eso es porque el servidor web / php generalmente se ejecuta con más derechos de los que debería tener acceso.
Y como los servidores web generalmente intentan evitar cosas como / etc / shadow visible, es para las plantillas de magento aún más peligrosas, ya que las plantillas se analizan a través de include (), por lo que puede tener fugas de seguridad muy fuertes si no tiene un control total sobre sus archivos.
Puede argumentar que hay otros problemas entonces, pero quién sabe realmente cada escenario de ataque potencial, y la mayoría de las veces es la combinación de diferentes agujeros de seguridad menos problemáticos, lo que lleva a las grandes rupturas.
Además, hace algún tiempo hubo una solución de seguridad con respecto al directorio de medios y los enlaces simbólicos, por lo que debe buscar posibles escenarios de ataque.
fuente
Solo puedo imaginar que esto es un riesgo en los hosts compartidos, que no deberían usarse para el comercio electrónico en primer lugar.
fuente
El parche Magento SUPEE-9767 incluye APPSEC-1281: ejecución remota de código a través de enlaces simbólicos , por lo que sí, los enlaces simbólicos en las plantillas son un problema de seguridad.
fuente
No se recomienda permitir. Me enfrentaba a errores de carga de js mientras los enlaces simbólicos estaban habilitados.
Un montón de;
Tengo que probar 4-5 actualizar para páginas cargadas con éxito.
Después de cerrarlo, es posible que los recursos desplegados no se implementen lentamente por primera vez, pero los errores js desaparecieron.
PD: Después de deshabilitar el enlace simbólico, debe eliminar la copia implementada de los archivos después de cada cambio para static.php, vuelva a copiarlo.
fuente