Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez l’attribut strict_context_handle pour tous les handles de contexte. Par défaut, un handle de contexte n’est pas associé à une interface, ce qui signifie qu’un handle de contexte peut être créé sur une interface, puis transmis à un autre. Il s’agit d’une attaque facile et de nombreux serveurs RPC ne parviennent pas à l’empêcher.
Si deux interfaces coexistent dans le même processus, un attaquant peut ouvrir un handle de contexte sur une interface et le transmettre à un autre, ce qui peut basculer sur les données inattendues. De nombreux développeurs croient que leur logiciel est la seule interface dans un processus, mais très souvent ce n’est pas le cas, car le système et de nombreux composants tiers utilisent RPC en interne, et ces interfaces peuvent créer des handles de contexte. Lorsque l’attribut strict_context_handle est utilisé, l’heure d’exécution RPC garantit qu’un contexte créé sur une interface peut être transmis en tant qu’argument uniquement aux méthodes de cette interface.
Dans les situations où une application est développée pour Windows Vista, l’utilisation de type_strict_context_handle est disponible et recommandée. Les handles de contexte ne sont pas associés à un type spécifique par défaut. Lorsque plusieurs types de handles de contexte sont utilisés dans le même processus, il est possible qu’un client malveillant passe un handle de contexte à la place d’un autre pour produire des résultats indésirables. L’utilisation de type_strict_context_handle permet aux applications d’appliquer la cohérence du type de handle de contexte et d’empêcher toute utilisation de type de handle de contexte incompatible.