有時需要進行驗證、登入等操作,基於安全理由密碼等資料不應該顯示及儲存
但應該如何隱藏文字 ?
執行 Shell Script 指令非常簡單
command --user='abc' --password='123'一般直接的 Shell Script 指令通常會以這種方式運作
但如字面上 password 的資料便會光明正大地顯示在畫面上,而且還會記錄在 bash history 中
雖然 bash history 是可以清除,但若有漏網之魚,後果可能相當嚴重
有些指令為避免顯示及儲存的資料,使用互動方式讓使用者輸入資料
command user : abc password :這種方式相對比直接以參數形式輸入顯然比較麻煩,但卻比較安全
Shell Script 如使用互動方式傳入參數會使用 read 指令,但 read 並不能隱藏輸入的文字
這時便借用 stty 來達成任務
#!/bin/sh read -p 'user : ' user stty -echo read -p 'password : ' password stty echo echo ''使用 stty -echo 將 user input 的資料不顯示在 console 上,完成輸入後使用 stty echo 恢復顯示
事實上使用 stty -echo 之後輸入指令同樣可以隱藏,但使用者連自己正在輸入甚麼也看不到
沒有留言 :
張貼留言