【问题标题】:Securely sending information between two python scripts在两个 python 脚本之间安全地发送信息
【发布时间】:2017-02-03 21:08:32
【问题描述】:

简要总结:

  • 我有两个文件:foo1.pyw 和 foo2.py
  • 我需要将大量敏感信息从 foo1.pyw 发送到 foo2.py,然后再返回。
  • 目前,我通过写入 .txt 文件来执行此操作,然后使用 foo2.py 打开它:os.system('foo2.py [text file here] [other arguments passing information]') 这里的问题是 .txt 文件在删除时会留下痕迹。我需要将信息发送到 foo2.py 并返回,而无需写入临时文件。
  • 信息将是格式化文本,仅包含 ASCII 字符,包括字母、数字、符号、回车、制表符和空格。

如果需要,我可以提供更多细节。

【问题讨论】:

    标签: python python-2.7 security


    【解决方案1】:

    【讨论】:

    • 我对 SSL 是什么一无所知,所以请您向我解释一下 TLS 将如何帮助我?
    • @AustinSmith 基本上,从一个文件传递的所有数据都通过一条“开放的道路”,可以被中间人攻击拦截。 SSL/TLS 所做的是,它本质上是创建了一条通过“开放道路”下方的隧道,从而使某人更难拦截。 --最适合服务器/客户端通信。
    • 我怎样才能将它用于本地安全,在文件之间发送原始信息?
    【解决方案2】:

    如果你担心的是HD上留下的痕迹,实时拦截不是问题,为什么不只是shred之后的临时文件?

    或者,如果要完成更多工作,您可以设置 ramdisk 并将文件保存在内存中。


    正确的方法可能是使用子进程和管道,可通过subprocess.Popen 访问,然后您可以直接在脚本之间通过管道传输信息。

    【讨论】:

    • 我不担心拦截,但我想尝试阻止它。我确实使用基本的切碎。但是从 SSD 切碎文件非常困难(有时是不可能的)。我宁愿在文件之间使用某种数据传输,而不用担心粉碎。
    • 另外,我刚刚注意到您将我链接到 Linux Shred 上的信息页面。请注意,Windows 没有此功能,因此我一直在尝试自己实现它,但效果有限。
    • @Austin 我添加了另一个选项,应该可以在 Windows 中使用。
    【解决方案3】:

    我认为最简单的解决方案是从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 下运行等,这可能会有点棘手。

    【讨论】:

      猜你喜欢
      • 2018-03-13
      • 2013-04-19
      • 2016-05-09
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      相关资源
      最近更新 更多