Delen via


Consolebufferbeveiliging en toegangsrechten

Met het Windows-beveiligingsmodel kunt u de toegang tot consoleinvoerbuffers en consoleschermbuffers beheren. Zie Access-Control Modelvoor meer informatie over beveiliging.

Consoleobjectbeveiligingsdescriptors

U kunt een beveiligingsdescriptor opgeven voor de console-invoer- en consoleschermbuffers wanneer u de functie CreateFile of CreateConsoleScreenBuffer aanroept. Als u NULL-opgeeft, krijgt het object een standaardbeveiligingsdescriptor. De ACL's in de standaardbeveiligingsdescriptor voor een consolebuffer zijn afkomstig van het primaire of imitatietoken van de maker.

De ingangen die worden geretourneerd door CreateFile, CreateConsoleScreenBuffer en GetStdHandle hebben de GENERIC_READ- en GENERIC_WRITE-toegangsrechten.

De geldige toegangsrechten omvatten de GENERIC_READ en GENERIC_WRITEalgemene toegangsrechten.

Waarde Betekenis
GENERIC_READ (0x800000000L) Vraagt leestoegang tot de consoleschermbuffer, zodat het proces gegevens uit de buffer kan lezen.
GENERIC_WRITE (0x400000000L) Vraagt schrijftoegang tot de consoleschermbuffer aan, waardoor het proces gegevens naar de buffer kan schrijven.

Opmerking

Universele Windows Platform-console-apps en gebruikers met een lager integriteitsniveau dan de gekoppelde console kunnen de uitvoerbuffer en het schrijven naar de invoerbuffer niet lezen, zelfs als de bovenstaande beveiligingsdescriptors dit normaal gesproken toestaan. Zie de onderstaande discussie over Verkeerde way-werkwoorden voor meer informatie.

Wrong-Way werkwoorden

Sommige bewerkingen voor de consoleobjecten worden geweigerd, zelfs als het object een beveiligingsdescriptor heeft die specifiek wordt vermeld om lezen of schrijven toe te staan. Dit geldt met name voor opdrachtregeltoepassingen die worden uitgevoerd in een context met beperkte bevoegdheden die een consolesessie delen die is gemaakt door een opdrachtregeltoepassing in een meer permissieve context.

De term 'verkeerde werkwoorden' is bedoeld om toe te passen op de bewerking die het omgekeerde is van de normale stroom voor een van de consoleobjecten. De normale stroom voor de uitvoerbuffer schrijft en de normale stroom voor de invoerbuffer leest. De 'verkeerde manier' is daarom het lezen van de uitvoerbuffer of het schrijven van de invoerbuffer. Dit zijn functies die worden beschreven in de documentatie voorLow-Level Console I/O Functions .

De twee scenario's waarin dit kan worden gevonden, zijn:

  1. Universele Windows Platform-console-apps. Omdat dit neven zijn van andere Universal Windows Platform-toepassingen, houden ze een belofte vast dat ze zijn geïsoleerd van andere toepassingen en gebruikers garanties bieden rond de effecten van hun werking.
  2. Elke consoletoepassing is opzettelijk gestart met een lager integriteitsniveau dan de bestaande sessie die kan worden uitgevoerd met labeling of tokenmanipulatie tijdens CreateProcess.

Als een van deze scenario's wordt gedetecteerd, past de console de vlag 'foutieve werkwoorden' toe op de opdrachtregeltoepassingsverbinding en weigert de aanroepen naar de volgende API's om de communicatie tussen de niveaus te verminderen:

Geweigerde aanroepen ontvangen een foutcode voor geweigerde toegang , hetzelfde als als als de lees- of schrijfmachtiging is geweigerd door de beveiligingsdescriptors op het object.