gpt4 book ai didi

apache - 相同 IP 地址但不同端口上的相同 session ID

转载 作者:行者123 更新时间:2023-12-04 16:12:52 26 4
gpt4 key购买 nike

我在两台不同的计算机上运行我的网站(完全相同的源代码,甚至用户登录详细信息),每台计算机都有自己的 apache。
用户可以通过我的端口转发设置访问这两个网站。

例如,10.10.10.10:81 访问计算机 A 上的网站,10.10.10.10:82 访问计算机 B 上的网站。

用户访问其中任何一个都没有问题。直到用户想使用同一个互联网浏览器同时访问它们。

在计算机 B 上登录网站将他/她从计算机 A 上的网站注销。

为什么会发生这种情况?
因为相同的 IP 地址会自动生成相同的 session ID?
不同的端口不会有不同的 session ID?
如何避免这种情况?手动生成Session ID会怎样?这个问题还有其他解决方案吗?

谢谢你。

最佳答案

Cookie 并非特定于某个端口。
这意味着如果在 10.10.10.10 上运行的服务器: 81 设置 cookie sessionId=123455 相同的 cookie 将发送到运行在 10.10.10.10 上的服务器: 80 .它导致你描述的场景

  • 用户转到服务器 10.10.10.10: 81
  • 10.10.10.10: 81 服务器为该用户建立 session 并设置 cookie。
  • 用户登录到服务器,现在可以使用 session 浏览。
  • 然后用户转到 10.10.10.10: 80 并且浏览器发送由 10.10.10.10 设置的 session cookie: 81
  • 因为 10.10.10.10: 80 对 10.10.10.10 上的 session 一无所知: 81 它建立一个新的 session 并设置新的 session cookie 覆盖旧的
  • 新 session cookie 仅在 10.10.10.10 上有效: 80 因此用户在 10.10.10.10 上注销: 81

  • 解决方案
  • (首选)为 session cookie 配置不同的名称
  • 配置服务器在设置 session cookie头时传递端口参数。这将使 cookie 特定于域+端口组合。如果可能,请避免使用此解决方案,因为并非所有浏览器都正确处理此参数。
  • 关于apache - 相同 IP 地址但不同端口上的相同 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13412864/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com