Отключить подпроцесс. Открыть эхо для заголовка окна командной строки в Python - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь использовать Python subprocess.Popen для создания модуля для привязок Python к интерфейсу командной строки; в значительной степени там, что касается привязок CLI go, но я действительно хочу иметь возможность маскировать некоторые «частные» аргументы.

CLI использует информацию об учетной записи, и я хочу скрыть учетные данные от заголовок командной строки. Ниже приведен снимок экрана с тем, что появляется, когда я использую метод login для своего класса привязок CLI.

Я знаю, что я здесь используется простой текст для ввода пароля ('TAIL'), но я просто хотел показать, что происходит. Из рисунка видно, что полная команда «отправлена» с использованием подпроцесса. Открыто отображается в заголовке приглашения.

Недавно я обнаружил, что существует способ программно изменить заголовок, используя os или ctypes, чтобы я мог эффективно маскировать или скрывать «личные» учетные данные, которые я не хочу отображать в заголовке командной строки, как показано здесь:

(like shown here)

, но есть ли лучший способ отключить "echo-to-title" (из-за отсутствия лучшего имени) с помощью subprocess.Popen?

1 Ответ

0 голосов
/ 27 февраля 2020

фактически пароли никогда не должны передаваться в качестве аргументов командной строки исполняемому файлу.

Причина:

любой, кто может просматривать запущенные процессы и их параметры, может видеть пароль.

Одним из решений является то, что родительский процесс. помещает пароль в переменную окружения, и вызываемая программа извлекает параметр из переменной окружения.

, поэтому вызывающая сторона будет выглядеть примерно так:

import os

os.environ["ACRTAC_PASSWORD"] = "TAIL"
subprocess.Popen([...])

и acrta c .py

import os
password = os.environ["ACRTAC_PASSWORD"]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...