如果使用套接字在同一Tkinter应用程序中的两个脚本之间通过localhost传递敏感数据,是否存在安全问题?

2024-09-30 22:15:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中实现了一个socket,在同一台机器上运行的两个脚本之间来回传递数据,作为单个Tkinter应用程序的一部分。你知道吗

在许多情况下,这些数据是高度敏感的(即个人信用卡号)。你知道吗

以这种方式在脚本之间传递数据是否会给我带来任何安全隐患?

服务器端:

import socket

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('localhost', 8089))
serversocket.listen(5) # become a server socket, maximum 5 connections

while True:
    connection, address = serversocket.accept()
    buf = connection.recv(64)
    if len(buf) > 0:
        print buf
        break

客户端:

import socket

clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('localhost', 8089))
clientsocket.send('hello')

Code source.

其他注意事项:

  • 这只会在一台机器上作为一个Tkinter应用程序的一部分起作用。将始终指定Localhost。你知道吗
  • 我不能使用multiprocessingthreading;请不要建议使用其中一种或替代品,除了socket的品种。有关原因的更多信息,请参见SO question, answers, and comments。这与需要在windows7和*nix上运行以及我想要的设置有关。你知道吗

Tags: import脚本机器应用程序localhoststreamtkintersocket
1条回答
网友
1楼 · 发布于 2024-09-30 22:15:00

是的,以这种方式在脚本之间传递数据可能会引起安全问题。如果攻击者可以访问同一台机器,那么他可以使用tcpdump之类的工具轻松地嗅探流量。你知道吗

为了避免这种情况,你应该加密你的流量-我张贴了一个评论下面你的问题与一个例子解决方案。你知道吗

相关问题 更多 >