Безопасно ли использовать команду cat в процессе Java?

#java #sh

#java #sh

Вопрос:

У нас есть следующие строки кода в нашем приложении.

 Process process = Runtime.getRuntime().exec("/usr/bin/sudo /opt/infra/bin/readPrivateKey.sh");
BufferedReader reader =new BufferedReader(new InputStreamReader(process.getInputStream()));
…
pvtKey = keys.toString().getBytes(StandardCharsets.UTF_8);
 

Файл оболочки содержит команду cat для выполнения файла rsa. Безопасно ли и безопасно ли выполнять команду cat из java? Результаты будут постоянными все время? Мы должны следовать этому подходу, поскольку у нас нет разрешения на доступ к файлу rsa непосредственно из java.

Ответ №1:

Результаты будут такими же последовательными, как и ваша файловая система. Но это не то, как вы управляете закрытыми ключами в программе Java — для этого есть хранилища ключей. Здесь вы просто читаете обычный файл с помощью некоторых программ — со всеми вытекающими последствиями