【问题标题】:How to secure a python socket listening, sending and receiving on an open port?如何在开放端口上保护 python 套接字侦听、发送和接收?
【发布时间】:2019-11-10 23:19:47
【问题描述】:

我的设置:

我正在使用 python3 和 socket 模块使用 ipv4 和 tcp 设置套接字,通过开放端口监听和接收数据。我有一个简单的服务器和客户端,客户端发送请求和服务器响应。

我的问题:

我做了一些研究,很多人认为开放的端口就像一扇敞开的门,我该如何锁定它?我的目标是保护我的服务器和我的客户端,而不是传输的数据(这意味着数据不应该被更改,但如果有人读取它并不重要)。我只是想确保服务器和客户端都不会收到错误的数据,也不会以任何方式被黑客入侵。如果服务端和客户端都是普通电脑,内置防火墙就够了吗?

问题:

  1. 如何确保我传输的数据不会被更改?
  2. 通过开放端口监听、接收和发送数据时,服务器的防火墙(每台计算机都内置的普通防火墙)是否足够?如果不是,我能做些什么来确保服务器不会以任何方式被黑客入侵(显然不是完全但尽可能好)?
  3. 与问题 2 相同。仅针对客户端(据我所知,它使用开放端口或至少不像服务器)

PS:如果可能的话,使用 python。

【问题讨论】:

  • “我怎样才能保护我的网络应用程序”不幸的是,对于堆栈溢出来说,这个问题太宽泛了,而且可能对于任何堆栈交换站点来说都是如此。关于防火墙的问题在这里也是题外话。真的,只有第 1 个问题是主题。
  • #1 的答案几乎总是“使用 TLS”。即使您不关心机密性(但您确实应该),TLS 也提供完整性检查。配置 TLS 并不容易,但因为它很常见,所以有很多信息、示例等可以帮助您入门。
  • 第 1 步:研究预先存在的安全解决方案。我可以向您保证,有大量 的解决方案可以为您提供安全保障。如果找不到,请转到第 2 步。 第 2 步:继续研究,因为如果您实际上没有找到,说明您还不够努力。不,真的 - 那里有很多,可能需要一些跑腿才能找到它们,但花几天时间寻找合适的产品比拥有你的程序、它所在的计算机和它所在的网络要好得多连接到所有因您尝试自行开发而受到威胁的人。

标签: python sockets security tcp server


【解决方案1】:

服务器端的基本安全级别是发送随机密钥以及用于验证受信任客户端的数据。如果要发送数据的客户端列表已知,您可以将仅接受来自特定 IP 地址列表的数据的 IP 地址列入白名单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 2011-12-10
    • 1970-01-01
    相关资源
    最近更新 更多