Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Model zabezpieczeń systemu Windows umożliwia kontrolowanie dostępu do wejściowych konsoli i ekranu konsoli. Aby uzyskać więcej informacji na temat zabezpieczeń, zobacz Access-Control Model.
Deskryptory zabezpieczeń obiektów konsoli
Deskryptor zabezpieczeń dla ekranu wejściowego konsoli i konsoli można określić podczas wywoływania funkcji CreateFile lub CreateConsoleScreenBuffer. Jeśli określisz NULL, obiekt otrzyma domyślny deskryptor zabezpieczeń. Listy ACL w domyślnym deskryptorze zabezpieczeń buforu konsoli pochodzą z podstawowego lub personifikacyjnego tokenu twórcy.
Dojścia zwrócone przez metody CreateFile, CreateConsoleScreenBuffer i GetStdHandle mają prawa dostępu GENERIC_READ i GENERIC_WRITE .
Prawidłowe prawa dostępu obejmują GENERIC_READ i GENERIC_WRITEogólnych praw dostępu.
| Wartość | Znaczenie |
|---|---|
| GENERIC_READ (0x8000000000L) | Żąda dostępu do odczytu do buforu ekranu konsoli, umożliwiając procesowi odczytywanie danych z buforu. |
| GENERIC_WRITE (0x400000000L) | Żąda dostępu zapisu do buforu ekranu konsoli, umożliwiając procesowi zapisywanie danych w buforze. |
Uwaga / Notatka
Aplikacje konsolowe platformy uniwersalnej systemu Windows i te, które mają niższy poziom integralności niż dołączona konsola, nie będą mogli odczytywać buforu wyjściowego i zapisywać w buforze wejściowym, nawet jeśli deskryptory zabezpieczeń powyżej pozwolą na to normalnie. Aby uzyskać więcej informacji, zobacz poniższą dyskusję na temat błędnych czasowników .
Wrong-Way czasowniki
Niektóre operacje na obiektach konsoli zostaną odrzucone, nawet jeśli obiekt ma deskryptor zabezpieczeń określony w celu zezwolenia na odczyt lub zapis. Dotyczy to w szczególności aplikacji wiersza polecenia działających w kontekście ograniczonych uprawnień, które współużytkują sesję konsoli utworzoną przez aplikację wiersza polecenia w bardziej permissywnym kontekście.
Termin "błędne czasowniki" jest przeznaczony do zastosowania do operacji, która jest odwrotnością normalnego przepływu dla jednego z obiektów konsoli. W szczególności normalny przepływ buforu wyjściowego zapisuje, a normalny przepływ buforu wejściowego odczytuje. W związku z tym "niewłaściwy sposób" byłby odczytem buforu wyjściowego lub zapisem buforu wejściowego. Są to funkcje opisane w dokumentacji funkcji we/wy konsoliLow-Level .
Dwa scenariusze, w których można to znaleźć, to:
- Aplikacje konsolowe platformy uniwersalnej systemu Windows. Ponieważ są to kuzyni innych aplikacji platformy uniwersalnej systemu Windows, posiadają obietnicę, że są odizolowane od innych aplikacji i zapewniają gwarancje użytkownika dotyczące efektów ich działania.
- Każda aplikacja konsolowa celowo uruchomiona z niższym poziomem integralności niż istniejąca sesja, którą można wykonać za pomocą etykietowania lub manipulowania tokenami podczas tworzeniaProcess.
Jeśli którykolwiek z tych scenariuszy zostanie wykryty, konsola zastosuje flagę "błędnych czasowników" do połączenia aplikacji wiersza polecenia i odrzuci wywołania następujących interfejsów API w celu zmniejszenia powierzchni komunikacji między poziomami:
Odrzucone wywołania otrzymają kod błędu odmowy dostępu , tak samo jak w przypadku odmowy uprawnień do odczytu lub zapisu przez deskryptory zabezpieczeń obiektu.