do shell script
Şifrelenmiş metin de dahil olmak üzere bazı bilgileri döndürmek için sık sık AppleScript'te (AS) komut kullanıyorum .
Böyle bir örnek:
set encrypted to (do shell script "echo 'my secret text' | openssl enc -aes-256-cbc -a -pass pass:Pass123")
Terminal'de çalıştırılırsa, bu komut geçmişe giriş yapar ve şunu yazarak görüntülenebilir: history
daha sonra Geri Dönüş tuşuna basın.
Sorun: Yukarıdaki örnek, düz metin şifresini parametre olarak içerir ve geçmişte (Terminal'de çalıştırıldığında) kolayca kopyalanıp şifreli dizgiyi ters çevirmek için kullanılabileceği, hiçbir bilgi gerekmeden gösterildiğini gösterir.
AppleScript'in log do shell script "history"
komutu veri döndürmüyor . Aynı şekilde, history
terminalde komutu çalıştırmak - örnek şifreleme AS üzerinden çalıştırıldıktan sonra, AS terminali komutunu da bu tarihte göstermez. Sonuç olarak, AS komutunun açıkça farklı bir kabuktan geçtiğine inanmamı sağlıyor. Kabuğun her kullanıcı için farklı olduğunu (yani hesabımın başka bir hesabın terminal geçmişini göremediğini) bilmesi, soruyu izler.
Soru: Bu, herhangi bir zamanda macOS tarafından tutulan tarih ve kayıtların hiçbirinde AS komutunun kaydı olmadığı anlamına mı geliyor? Yoksa şifrelemenin tersine çevrilebileceği, okunabileceği, yorumlanabileceği ve bu nedenle şifreleyebileceği bir yere mi gömülmüş?
Her ne kadar düşündürücü ve düşünceye açık olsa da, soruların cevaplanabilir bir alanı içinde olduğunu düşünüyorum. Güvenlik açısından cevap ile ilgileniyorum ve terminalin AS ile komutları - terminalin geçmişle yaptığı gibi - nasıl / nerede / nerede kayıt yaptığını daha net bir şekilde görmeyi umuyorum .
Herkese teşekkürler.
HISTORY
etkileşimli mermilerin bir özelliğidir. Kabuk komut dosyaları etkileşimli değildir veHISTORY
devre dışı bırakılmıştır.do shell script "echo $-"
Komut Dosyası Düzenleyicide ve ardındanecho $-
bir terminal oturumunda deneyin . Komut Dosyası Düzenleyicisi'nde çalıştırdığınızda eksik "i" yi not edin.