Bir kullanıcı bir bash kabuk isteminde bir parola yazın ve bu parola bir programa stdin parçası olmak için (1) en güvenli ve (2) en basit yolu arıyorum.
Bu Stdin ihtiyaçları gibi görünmek için ne: {"username":"myname","password":"<my-password>"}
nerede <my-password>
neydi istemi kabuğu içine yazılan edilir. Eğer stdin programı üzerinde kontrol sahibi olsaydım, o zaman güvenli bir şifre istemek ve yerine koymak için değiştirebilirdim, ancak aşağı akış standart bir genel amaçlı komuttur.
Aşağıdakileri kullanan yaklaşımları düşündüm ve reddettim:
- şifreyi komut satırına yazan kullanıcı: şifre ekranda gösterilir ve "ps" ile tüm kullanıcılar tarafından görülebilir
- kabuk değişkeni harici bir programın argümanına enterpolasyonu (örn.
...$PASSWORD...
): şifre hala "ps" ile tüm kullanıcılar tarafından görülebilir - ortam değişkenleri (çevrede kalırlarsa): parola tüm alt işlemler tarafından görülebilir; güvenilir süreçler bile, bir tanılamanın parçası olarak çekirdek değişkenleri veya ortam değişkenlerini dökerse şifreyi ortaya çıkarabilir
- bir dosyada uzun süre oturan şifre, sıkı izinlere sahip bir dosya bile: kullanıcı yanlışlıkla şifreyi açığa çıkarabilir ve kök kullanıcı yanlışlıkla şifreyi görebilir
Mevcut çözümümü aşağıda bir cevap olarak koyacağım, ancak birisi bir cevap bulursa daha iyi bir cevap seçeceğim. Daha basit bir şey olması gerektiğini düşünüyorum, ya da belki birileri kaçırdığım bir güvenlik endişesi görür.