Interaktiver Benutzer
Der interaktiven Benutzer ist der Benutzer, der aktuell auf dem Computer angemeldet ist, auf dem der COM-Server ausgeführt wird. Wenn die Identität als interaktiver Benutzer festgelegt ist, verwenden alle Clients dieselbe Instanz des Servers, wenn der Server seine Klassenfactory als Mehrfachverwendung registriert. Wenn kein Benutzer angemeldet ist, wird der Server nicht ausgeführt. Wenn der Server über eine grafische Benutzeroberfläche (GUI) verfügt, die der Client sehen muss, sollten Sie interaktiven Benutzer für die Identität des Servers verwenden. Die Auswahl dieser Identität birgt jedoch einige Sicherheitsrisiken, da der Server unter der Identität des angemeldeten Benutzers ausgeführt wird, ohne dass das Wissen oder die Zustimmung des angemeldeten Benutzers vorliegt. Darüber hinaus kann eine Dienstanwendung keine Benutzeroberfläche anzeigen. Weitere Informationen finden Sie unter Interactive Services.
Wenn ein COM-Server für die Ausführung als interaktiver Benutzer konfiguriert ist, wird der Server in einer Terminaldiensteumgebung in der interaktiven Sitzung gestartet, die der Benutzeridentität des Clients entspricht. Die Clientanwendung kann jedoch den Sitzungsmoniker verwenden, um auf ein vom Server in einer Sitzung bereitgestelltes Objekt zu verweisen, das nicht mit der Clientidentität übereinstimmt. Wenn dies verwendet wird, kann die Clientanwendung eine beliebige Sitzung angeben. In diesem Fall wird der Server als Der Benutzer ausgeführt, der die Sitzung besitzt, nicht der Startbenutzer. Die Standardzugriffsberechtigungen in diesem Szenario würden es dem Startbenutzer nicht ermöglichen, Methoden auf dem Server aufzurufen. Die folgenden Sicherheitsrisiken bleiben jedoch bestehen:
- Wenn der COM-Server Schnittstellen verfügbar macht, die nicht von COM gesteuert werden, z. B. TCP-Ports, benannte Rohre, LPC-Ports, freigegebene Speicherabschnitte usw., können diese vom Startbenutzer verwendet werden, um den Server zu beeinflussen. COM-Objekte, die so konfiguriert sind, dass der interaktive Benutzer diese Angriffsfläche so weit wie möglich reduzieren sollte.
- COM-Objekte können ihre eigenen Zugriffsberechtigungen festlegen. Wenn das Objekt Zugriffsberechtigungen festlegt, entweder in der AppID-Registrierung oder durch Aufrufen von CoInitializeSecurity, um den Startbenutzerzugriff zu ermöglichen, kann der Benutzer den Server starten, der als anderer Benutzer ausgeführt wird, und dann auf das Objekt zugreifen.
Verwandte Themen