2017-02-03 32 views
0

小結:兩個Python腳本之間安全發送信息

  • 我有兩個文件:foo1.pyw和foo2.py
  • 我需要發送大量的敏感信息,以foo2.py foo1.pyw,然後再回來。
  • 目前,我通過寫入一個.txt文件,然後用foo2.py打開它,使用:os.system('foo2.py [text file here] [other arguments passing information]')這裏的問題是.txt文件然後留下痕跡,當它被刪除。我需要發送信息到foo2.py並返回,而不必寫入臨時文件。
  • 信息將是格式化文本,僅包含ASCII字符,包括字母,數字,符號,返回,製表符和空格。

如果需要,我可以提供更多的細節。

回答

0
+0

我什麼都不知道什麼是SSL,那麼可以請你給我解釋TLS會怎樣幫助我在外行方面? – Cyanite

+0

@AustinSmith基本上,從一個文件傳遞過來的所有數據都會經過一條可以被中間人攻擊攔截的「開放式道路」。 SSL/TLS究竟做了什麼,它本質上是創建了一條通過「開放式道路」下方的隧道,從而使其難以攔截。 - 最適用於服務器/客戶端通信。 –

+0

我怎樣才能使用這個本地安全,在文件之間發送原始信息? – Cyanite

0

如果您擔心的是HD上留下的痕跡,並且實時截取不是問題,那麼爲什麼不僅僅是shred之後的臨時文件?

或者,對於更多的工作,您可以設置一個ramdisk並將文件保存在內存中。


方式做,這可能是一個子進程和管道,通過subprocess.Popen訪問然後你可以在腳本之間的直接管道信息。

+0

我不擔心攔截,但我想嘗試並阻止它。我確實使用基本粉碎。但是從SSD中擦除文件非常困難(有時不可能)。 我寧願在文件之間使用某種數據傳輸,而不是擔心會導致粉碎。 – Cyanite

+0

另外,我剛剛注意到你將我鏈接到Linux Shred的信息頁面。請注意,Windows沒有這個功能,所以我一直試圖自己實現它,但有限的成功。 – Cyanite

+0

@奧斯汀我添加了另一個選項,它應該在Windows中工作。 – TemporalWolf

0

我認爲最簡單的解決辦法是剛剛從foo1.py調用內foo2.py功能:

# foo1.py 
import foo2 
result = foo2.do_something_with_secret("hi") 

# foo2.py 
def do_something_with_secret(s): 
    print(s) 
    return 'yeah' 

顯然,如果你想用一個任意可執行文件,以取代foo2.py這是行不通的。

這可能是如果他們兩個是在不同的目錄,在不同版本的Python的運行有點棘手,等