考虑到本地环回连接:-
它完全在操作系统的网络软件中实现,并且不向任何网络接口控制器传递数据包。
如果同一台机器上的两个应用程序使用环回地址 127.0.0.1 与 TCP/IP 通信,那么该机器上的其他应用程序(例如 Wireshark)是否能够拦截数据包并查看应用程序之间发送的数据?
考虑到本地环回连接:-
它完全在操作系统的网络软件中实现,并且不向任何网络接口控制器传递数据包。
如果同一台机器上的两个应用程序使用环回地址 127.0.0.1 与 TCP/IP 通信,那么该机器上的其他应用程序(例如 Wireshark)是否能够拦截数据包并查看应用程序之间发送的数据?
正如你所说,当通信发生时localhost
,没有任何数据包进入外部网络,所以如果发生捕获,那么它必须发生在机器本身上。
在这方面有两点值得注意:
捕获localhost
并不适用于所有操作系统。值得注意的是,它在 Windows 上运行不佳(有部分解决方案),而在 Linux 上运行。
捕获需要一些广泛的访问权限。可以捕获localhost
流量的人已经在机器上拥有root
或Administrator
访问,因此他们也可以直接检查所涉及进程的 RAM,并且通常对机器做他们想做的事情。
因此,与连接相关的安全问题localhost
并非来自流量捕获。更常见的是,问题来自连接到服务器的同一台机器上的非特权应用程序(作为另一个本地用户运行)。具有安全意识的本地服务器通常会使用getpeereid()
(在类 Unix 系统上)知道谁在连接它。