Freigeben über


Vorsicht bei anderen RPC-Endpunkten, die im selben Prozess ausgeführt werden

Wenn sich eine Anwendung in einem Prozess mit anderen RPC-Servern befindet, lauschen alle Anwendungen auf allen Protokollen. Wenn eine Komponente RpcServerUseProtseq* nur für LRPC aufruft, kann daher nicht unbedingt nur über LRPC darauf zugegriffen werden. Der Zugriff kann über andere Protokolle erfolgen, da andere RPC-Server im Prozess möglicherweise auf Pipes oder Sockets lauschen (z. B. ).

Ähnlich wie bei strikten Kontexthandles bedeutet das Nicht einfügen eines anderen Endpunkts in den Prozess nicht, dass kein anderer Endpunkt vorhanden ist. Unabhängig davon, wie Sie Ihren Server registrieren, gibt es keine besondere Zuordnung zwischen Ihrer Schnittstelle und Ihrem Endpunkt. Alle Schnittstellen können auf allen Endpunkten in diesem Prozess aufgerufen werden. Dies ist ein weiterer Grund, warum das Endpunktsicherheitsmodell ineffektiv ist. Wenn ein Sicherheitsdeskriptor auf einem Endpunkt platziert wird, können Angreifer die Schnittstelle auf einem anderen Endpunkt aufrufen.

Um sicherzustellen, dass ein Prozess nur für eine bestimmte Protokollsequenz aufgerufen wird, registrieren Sie eine Sicherheitsrückruffunktion, und überprüfen Sie in dieser Funktion, in welcher Protokollsequenz der Aufruf erfolgt.