Seguridad de las plantillas de textoSecurity of Text Templates

Plantillas de texto tienen los siguientes problemas de seguridad:Text templates have the following security concerns:

  • Plantillas de texto son vulnerables a las inserciones de código arbitrario.Text templates are vulnerable to arbitrary code insertions.

  • Si el mecanismo que usa el host para encontrar un procesador de directivas no es seguro, se podría ejecutar un procesador de directivas malintencionado.If the mechanism that the host uses to find a directive processor is not secure, a malicious directive processor could be run.

Código arbitrarioArbitrary Code

Cuando se escribe una plantilla, puede colocar cualquier código dentro de la <## > etiquetas.When you write a template, you can put any code within the <# #> tags. Esto permite al código arbitrario se ejecute desde dentro de una plantilla de texto.This allows arbitrary code to be executed from within a text template.

Asegúrese de que obtener plantillas de orígenes de confianza.Be sure you obtain templates from trusted sources. Asegúrese de que pretende advertir a los usuarios finales de su aplicación no ejecutar plantillas que no proceden de orígenes de confianza.Make sure to warn the end-users of your application not to execute templates that do not come from trusted sources.

Procesador de directivas malintencionadoMalicious Directive Processor

El motor de plantillas de texto interactúa con un host de transformación y uno o más procesadores de directivas para transformar la plantilla de texto a un archivo de salida.The text template engine interacts with a transformation host and one or more directive processors to transform the template text to an output file. Para obtener más información, consulte el proceso de transformación de plantillas de texto.For more information, see The Text Template Transformation Process.

Si el mecanismo que usa el host para encontrar un procesador de directivas no es seguro, corre el riesgo de ejecutar un procesador de directivas malintencionado.If the mechanism that the host uses to find a directive processor is not secure, it runs the risk of running a malicious directive processor. El procesador de directivas malintencionado puede proporcionar código que se ejecuta en FullTrust modo cuando se ejecuta la plantilla.The malicious directive processor could provide code that is run in FullTrust mode when the template is run. Si crea un host de transformación de plantillas de texto personalizado, debe usar un mecanismo de seguridad, como el registro, para el motor para localizar los procesadores de directivas.If you create a custom text template transformation host, you must use a secure mechanism, such as the registry, for the engine to locate directive processors.