强制 HTML 表单通过 IPv4 提交

强制 HTML 表单通过 IPv4 提交

我有一个网页,其中有一个简单的 HTML 表单,如下所示:

<form method="POST" action="/something">
  <input type="text" name="something">
  <input type="submit" value="Send">
</form>

当托管此服务器可通过 IPv4 和 IPv6 访问时,有没有办法可以强制此 HTML 表单 POST 通过 IPv4 完成,而无需更改 Web 服务器?

如果我尝试1.2.3.4/something执行该操作,则会失败,因为缺少主机标头。如果我创建一个v4.example.com只有 IPv4 地址的子域(然后使用v4.example.com/something),则会失败,因为该子域不会包含在 apache 配置中,也不会分配给该 vHost。

我能否通过修改 HTML 表单让客户端通过 IPv4 发送该表单?还是我必须更改 Apache 配置才能做到这一点?

答案1

作为相同的互联网连接测试,这是有缺陷的。

  • 比较 v4 地址时会假设用户代理位于您期望的 NAT 后面。这会在重组其公共地址空间时降低灵活性。
  • 运营商级 NAT 意味着 v4 地址可以由不知道多少个客户共享。
  • 多宿主相对简单。同一个 IP 可以有通过 3 到 4 个不同 ISP 的路径。
  • 如果没有 v6,则强制 v6 客户端通过 NAT64。共享资源不会提高此测试的准确性。如果有的话,它会惹恼您的用户。
  • VPN 可以使流量看起来来自不同的网络。

要验证表单提交者是否与某个组织或站点相关联,请使用帐户登录或类似的标识符。

要识别连接来自何处,请查找互联网路由表或使用地理位置 API。

答案2

唯一的办法是:

将表单发送至v4.example.com,其中仅包含您提交表单的 Web 服务器的 A 记录。

在Web服务器中,设置一个带有v4.example.com域名的虚拟主机,或者将其v4.example.com作为附加域添加到现有的虚拟主机。

然后您可能需要处理跨域问题。

相关内容