Ścisłe i ścisłe dojścia kontekstu typu
Użyj atrybutu strict_context_handle dla wszystkich dojść kontekstowych. Domyślnie dojście kontekstowe nie jest skojarzone z interfejsem, co oznacza, że na jednym interfejsie można utworzyć uchwyt kontekstu, a następnie przekazać go do innego. Jest to łatwy atak, a wiele serwerów RPC nie może temu zapobiec.
Jeśli dwa interfejsy współistnieją w tym samym procesie, osoba atakująca może otworzyć uchwyt kontekstu w jednym interfejsie i przekazać go do innego, co może przejeżdżać przez nieoczekiwane dane. Wielu deweloperów uważa, że ich oprogramowanie jest jedynym interfejsem w procesie, ale bardzo często tak nie jest, ponieważ zarówno system, jak i wiele składników innych firm korzystają wewnętrznie z RPC, a te interfejsy mogą tworzyć uchwyty kontekstowe. Gdy jest używany atrybut strict_context_handle, czas wykonywania RPC gwarantuje, że kontekst utworzony na jednym interfejsie może zostać przekazany jako argument tylko do metod tego interfejsu.
W sytuacjach, w których aplikacja jest opracowana dla systemu Windows Vista, korzystanie z type_strict_context_handle jest dostępne i zalecane. Dojścia kontekstowe nie są domyślnie skojarzone z określonym typem. Jeśli w tym samym procesie jest używanych wiele typów dojść kontekstowych, złośliwy klient może przekazać uchwyt kontekstu zamiast innego w celu uzyskania niepożądanych wyników. Użycie type_strict_context_handle umożliwia aplikacjom wymuszanie spójności typu obsługi kontekstu i zapobieganie wszelkim niezgodnym użyciu typu obsługi kontekstu.