linux - 当远程计算机从我的 Linux 服务器请求 URL 时,是否可以强制至少 2 个 IP 数据包?

标签 linux networking tcp

我有这个问题。 我让广告商向我发送回发(使用某些参数对我的服务器进行 url GET 调用),例如 http://www.example.org/pb/advertier/?param1=xxxxparam2=yyyy 问题是广告商授予安全性的唯一方式(所以我知道回发确实来自他们)是基于 IP 的,所以我知道他们服务器的 IP 地址,仅此而已,如果传入的回发来自这些 IP 之一,则它是真实的。 问题是,我认为有黑客知道如何伪造原始 IP 地址,只需使用伪造的原始 IP 向我的服务器发送请求,我的应用程序就会将该请求视为有效。

我认为的一个解决方案是,在 tcp 堆栈级别或类似的(我不是这方面的专家),至少有 2 个数据包需要来自黑客计算机,因此需要发生 TCP/IP 对话,就像黑客向我发送一些数据,然后我的服务器回复,然后黑客计算机需要发送更多数据(数据包)才能完成 GET 请求,这会很酷。这样,黑客将无法发送他的请求,因为来 self 的服务器的回复将发送到其他地方(发送到伪造的原始 IP)。

我希望这个想法很清楚,非常感谢任何帮助,

谢谢。

最佳答案

由于您暗示这是一个通过 TCP 执行的 HTTP 请求,因此您描述的问题并不真正存在。建立TCP连接已经涉及3个数据包,如果有人伪造源地址,握手将无法完成。

关于linux - 当远程计算机从我的 Linux 服务器请求 URL 时,是否可以强制至少 2 个 IP 数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24079218/

相关文章:

c# - 有什么方法可以使用 TCP 隧道连接到 Visual Fox pro 等文档数据库

azure - 使用 Terraform 在具有网络规则的存储帐户中创建 Azure 存储容器

node.js - TCP 服务器的 GCP Compute Engine 防火墙规则

c++ - 使用 boost::asio::ip::tcp::socket 作为 shared_ptr

c - 使用 GNU Autotools 获取 GCC 包含路径

java - Linux 上的 Gradle "cannot find Tools.jar"

linux - 将配置文件共享到多个 docker 容器

java - 什么是 Tomcat 运行?

c - 绑定(bind)套接字时如何不破坏 UDP 端口?

networking - TCP的重传规则是什么?