Megosztás:


A konzolpuffer biztonsága és hozzáférési jogai

A Windows biztonsági modell lehetővé teszi a konzol bemeneti puffereihez és a konzol képernyőpuffereihez való hozzáférést. További információ a biztonságról: Access-Control Modell.

Konzolobjektum biztonsági leírói

Ha meghívja a CreateFile vagy a CreateConsoleScreenBuffer függvényt, megadhatja a konzol bemeneti és konzolképernyő-puffereinek biztonsági leíróját. Ha NULLad meg, az objektum egy alapértelmezett biztonsági leírót kap. A konzolpuffer alapértelmezett biztonsági leírójában szereplő ACL-ek a létrehozó elsődleges vagy megszemélyesítési biztonsági tokenből származnak.

A CreateFile, a CreateConsoleScreenBuffer és a GetStdHandle által visszaadott leírók GENERIC_READ és GENERIC_WRITE hozzáférési jogosultságokkal rendelkeznek.

Az érvényes hozzáférési jogosultságok közé tartoznak a GENERIC_READ és GENERIC_WRITEáltalános hozzáférési jogosultságok.

Érték Értelmezés
GENERIC_READ (0x80000000L) Olvasási hozzáférést kér a konzol képernyőpufferéhez, így a folyamat adatokat olvas be a pufferből.
GENERIC_WRITE (0x40000000L) Írási hozzáférést kér a konzol képernyőpufferéhez, lehetővé téve a folyamat számára, hogy adatokat írjon a pufferbe.

Megjegyzés:

Az univerzális Windows platform konzolalkalmazásai és a csatlakoztatott konzolnál alacsonyabb integritási szinttel rendelkező alkalmazások akkor sem olvashatják be a kimeneti puffert, és nem írhatnak a bemeneti pufferbe, ha a fenti biztonsági leírók általában lehetővé tennék. További részletekért tekintse meg az alábbi Helytelen irányú igék beszélgetést.

Wrong-Way igék

A konzolobjektumok bizonyos műveletei akkor is megtagadhatók, ha az objektum rendelkezik olyan biztonsági leíróval, amely kifejezetten engedélyezi az olvasást vagy írást. Ez kifejezetten a csökkentett jogosultsági szintű környezetben futó parancssori alkalmazásokat érinti, amelyek egy olyan konzolmunkamenetet osztanak meg, amelyet egy parancssori alkalmazás hozott létre egy megengedőbb környezetben.

A "fordított ige" kifejezés arra a műveletre vonatkozik, amely az egyik konzolobjektum normál folyamatának ellentéte. Pontosabban a kimeneti puffer normál folyamata az írás, és a bemeneti puffer normál folyamata az olvasás. A "helytelen út" tehát a kimeneti puffer beolvasása vagy a bemeneti puffer írása. Ezek aLow-Level konzol I/O-függvényeinek dokumentációjában leírt függvények.

A két forgatókönyv, ahol ez megtalálható, a következők:

  1. Univerzális Windows Platform konzolalkalmazások. Mivel ezek más Univerzális Windows Platform-alkalmazások unokatestvérei, ígéretet tesznek arra, hogy el vannak különítve más alkalmazásoktól, és garantálják a felhasználók számára a működésük hatásait.
  2. Minden olyan konzolalkalmazás, amely szándékosan alacsonyabb integritási szinttel indult el, mint a meglévő munkamenet, amely a CreateProcess során címkézéssel vagy jogkivonat-kezeléssel valósítható meg.

Ha a fenti forgatókönyvek bármelyikét észleli, a konzol a parancssori alkalmazáskapcsolatra alkalmazza a "helytelen ige" jelzőt, és elutasítja a következő API-k hívásait a szintek közötti kommunikáció felületének csökkentése érdekében:

Az elutasított hívások hozzáférés-megtagadott hibakódot kapnak, ugyanúgy, mintha az objektum biztonsági leírói megtagadták volna az olvasási vagy írási engedélyt.