Advertencia de seguridad (Cuadro de diálogo, archivo de proyecto MSBuild)

Actualización: noviembre 2007

En Visual Studio 2005 y versiones posteriores, puede personalizar un archivo de proyecto de MSBuild para volver a definir el proceso de compilación. Hay partes del proceso de compilación definidas en el archivo de proyecto que se ejecutan en la fase de diseño inmediatamente después de cargar un proyecto en el entorno de desarrollo integrado (IDE). El cuadro de diálogo Advertencia de seguridad detecta los archivos de proyecto personalizados que podrían presentar riesgos de seguridad y permite elegir cómo el IDE debe abrir el proyecto.

Elementos de interfaz de usuario

  • Más detalles
    Abre un cuadro de diálogo que explica la razón por la que se determinó que el archivo de proyecto constituyese un riesgo de seguridad potencial.

  • Cargar un proyecto para su exploración
    Abre el proyecto en el IDE con seguridad mejorada. Esta opción permite explorar el contenido del proyecto, pero con alguna funcionalidad restringida, como IntelliSense. Cuando se carga un proyecto para su exploración, acciones como generar, limpiar, publicar o abrir diseñadores todavía podrían ser no seguras.

  • Cargar un proyecto normalmente
    Abre el proyecto normalmente en el IDE. Se debe utilizar esta opción si se confía en el origen y se comprenden los riesgos potenciales que implica. El IDE no restringe ninguna funcionalidad del proyecto y no se le preguntará de nuevo por este proyecto.

  • Preguntar por cada proyecto de la solución
    Seleccione esta opción si desea que se le pregunte por cada proyecto de la solución.

Determinar los archivos de proyecto no seguros

Existen varias razones por las que se determina que un archivo de proyecto constituye un riesgo de seguridad potencial. Las razones son las siguientes:

  • El archivo de proyecto contiene uno o varios elementos Import de carácter no estándar.

  • El archivo de proyecto reemplaza uno o varios destinos potencialmente no seguros. Para obtener más información sobre destinos, vea Objetivos de MSBuild.

  • El archivo de proyecto reemplaza una o varias propiedades potencialmente no seguras. Para obtener más información sobre propiedades, vea Propiedades de MSBuild.

  • El archivo de proyecto define uno o varios elementos potencialmente no seguros. Para obtener más información sobre elementos, vea Elementos de MSBuild.

  • El archivo de proyecto contiene uno o varios elementos UsingTask.

  • Los elementos del proyecto se encuentran en una ubicación potencialmente no segura.

Elementos Import no estándar

Se almacena una lista de archivos .targets estándar en el Registro que se encuentra en HKEY_LOCALMACHINE\Software\Microsoft\VisualStudio\8.0\MSBuild\SafeImports\. Si un archivo de proyecto importa un archivo .targets que no está almacenado en el Registro, se determina que constituye un riesgo de seguridad potencial.

Destinos potencialmente peligrosos

El IDE ejecuta varios destinos al cargar un proyecto. Si uno de esos destinos se ha reemplazado en un archivo de proyecto personalizado, se reconoce como un riesgo de seguridad potencial. Entre los destinos que ejecuta el IDE al cargar un proyecto se incluyen los siguientes:

  • Compile

  • GetFrameworkPaths

  • AllProjectOutputGroupsDependencies

  • AllProjectOutputGroups

  • CopyRunEnvironmentFiles

  • ResolveComReferences

  • ResolveAssemblyReferences

  • ResolveNativeReferences

Propiedades potencialmente peligrosas

En la lista siguiente se explican los tipos básicos de propiedades potencialmente peligrosas:

  • Propiedades utilizadas en el atributo DependsOn de destinos potencialmente peligrosos.

  • Propiedades utilizadas en los atributos Project de elementos Import utilizados en archivos .targets seguros.

  • Propiedades utilizadas por destinos potencialmente peligrosos o por sus tareas.

  • Propiedades que comienzan con un carácter de subrayado (_).

  • También existen propiedades especiales utilizadas por el IDE para administrar destinos, elementos y propiedades de carácter potencialmente peligroso. Estas propiedades no se pueden reemplazar en un archivo de proyecto. Las propiedades especiales son las siguientes:

  • LoadTimeSensitiveTargets

  • LoadTimeSensitiveProperties

  • LoadTimeSensitiveItems

  • LoadTimeCheckItemLocation

Elementos potencialmente peligrosos

Ciertos elementos utilizados por archivos .targets importados no se pueden reemplazar en un archivo de proyecto. Si se reemplaza uno o varios de estos elementos, el proyecto se considera un riesgo de seguridad potencial.

Elementos UsingTask

Una tarea personalizada puede ejecutar código potencialmente no seguro. Por consiguiente, todos los archivos de proyecto que contienen uno o varios elementos UsingTask se consideran un riesgo de seguridad potencial.

Elementos de proyecto en ubicaciones potencialmente peligrosas

Algunos elementos de archivos .targets, por otra parte seguros, establecen sus rutas de acceso atendiendo a propiedades de proyecto definidas por el usuario. Para evitar que un elemento sobrescriba un archivo importante, los archivos de proyecto que contienen rutas de acceso de elemento, que se evalúan como una de las siguientes ubicaciones o cualquiera de sus subdirectorios, se consideran un riesgo de seguridad potencial, a menos que también estén situados en el archivo de solución, en el directorio del archivo de proyecto o debajo de ellos:

  • Directorio raíz de cualquier unidad.

  • Directorio de Windows, por ejemplo, C:\Windows\.

  • Directorio Archivos de programa, por ejemplo, C:\Archivos de programa\.

Vea también

Conceptos

MSBuild

Otros recursos

Referencia de MSBuild

Conceptos de MSBuild