Compartir a través de


Identificadores de contexto estrictos y de tipo estricto

Use el atributo strict_context_handle para todos los identificadores de contexto. De forma predeterminada, un identificador de contexto no está asociado a una interfaz, lo que significa que se puede crear un identificador de contexto en una interfaz y, a continuación, pasarse a otra. Se trata de un ataque sencillo y muchos servidores RPC no pueden evitarlo.

Si dos interfaces coexisten en el mismo proceso, un atacante puede abrir un identificador de contexto en una interfaz y pasarla a otra, lo que puede superar los datos inesperados. Muchos desarrolladores creen que su software es la única interfaz en un proceso, pero muy a menudo no es el caso, ya que tanto el sistema como muchos componentes de terceros usan RPC internamente, y esas interfaces pueden crear identificadores de contexto. Cuando se usa el atributo strict_context_handle , el tiempo de ejecución rpc garantiza que un contexto creado en una interfaz se pueda pasar como argumento solo a los métodos de esa interfaz.

En situaciones en las que se desarrolla una aplicación para Windows Vista, el uso de type_strict_context_handle está disponible y recomendado. Los identificadores de contexto no están asociados a un tipo específico de forma predeterminada. Cuando se usan varios tipos de identificadores de contexto en el mismo proceso, es posible que un cliente malintencionado pase un identificador de contexto en lugar de otro para generar resultados no deseados. El uso de type_strict_context_handle permite a las aplicaciones aplicar la coherencia del tipo de identificador de contexto y evitar cualquier uso de tipo de identificador de contexto no coincidente.