如何通过PHP为每个浏览器窗口生成唯一的会话?如果使用手动sessiond设置会话更安全?

如何通过PHP为每个浏览器窗口生成唯一的会话?如果使用手动sessiond设置会话更安全?,php,session,browser-security,Php,Session,Browser Security,我有一个页面可以注册用户信息以提交请求。我想分别保存用户在每个窗口中输入的用户信息,并保存在每个浏览器窗口的专用会话中。 我搜索了Google和stackoverflow,但没有得到一个好结果 如何通过PHP为每个浏览器窗口生成唯一的会话?如果使用手动sessiond设置会话更安全?由于会话(会话cookie)在同一浏览器的所有实例之间共享,它们对您没有帮助。您需要创建唯一的URL,以便每个窗口/选项卡都可以访问真正不同的页面。例如: http://example.com/foo.php?id=

我有一个页面可以注册用户信息以提交请求。我想分别保存用户在每个窗口中输入的用户信息,并保存在每个浏览器窗口的专用会话中。 我搜索了Google和stackoverflow,但没有得到一个好结果

如何通过PHP为每个浏览器窗口生成唯一的会话?如果使用手动sessiond设置会话更安全?

由于会话(会话cookie)在同一浏览器的所有实例之间共享,它们对您没有帮助。您需要创建唯一的URL,以便每个窗口/选项卡都可以访问真正不同的页面。例如:

http://example.com/foo.php?id=abcdef123456789
您是将其视为唯一的页面标识符,还是将其视为在URL中传输会话id,这取决于您以及您到底需要它做什么

请注意,以这种方式传输的id很容易共享,可能是意外共享。它会显示在浏览器历史记录中,并且可以轻松地复制和粘贴到其他地方。

由于会话(会话cookie)在同一浏览器的所有实例之间共享,因此它们对您没有帮助。您需要创建唯一的URL,以便每个窗口/选项卡都可以访问真正不同的页面。例如:

http://example.com/foo.php?id=abcdef123456789
您是将其视为唯一的页面标识符,还是将其视为在URL中传输会话id,这取决于您以及您到底需要它做什么


请注意,以这种方式传输的id很容易共享,可能是意外共享。它会显示在浏览器历史记录中,并且可以很容易地复制和粘贴到其他地方。

您不知道这是一个不同的窗口,因此无法立即执行此操作。不同的浏览器,可以,但不能在同一个浏览器中有多个窗口。您可以潜在地使用AJAX和JQUERY来获取客户端当前的浏览器窗口,并将其发送回您的PHP页面,但会有一些延迟,因为您先加载PHP。您可以使用
sessionStorage
javascript API,只要容器不是什么,Cookie(php会话通常在可用时使用Cookie)在同一浏览器的浏览器窗口之间共享。这也意味着,无论如何,php会话可能是个坏主意。一般来说,饼干很可能是个坏主意。基本上,您必须为每个请求提供“会话id”。如何生成它是另一个问题,但我相信创建一些加密随机数在其他地方有涉及。你不知道这是一个不同的窗口,所以你不能马上这样做。不同的浏览器,可以,但不能在同一个浏览器中有多个窗口。您可以潜在地使用AJAX和JQUERY来获取客户端当前的浏览器窗口,并将其发送回您的PHP页面,但会有一些延迟,因为您先加载PHP。您可以使用
sessionStorage
javascript API,只要容器不是什么,Cookie(php会话通常在可用时使用Cookie)在同一浏览器的浏览器窗口之间共享。这也意味着,无论如何,php会话可能是个坏主意。一般来说,饼干很可能是个坏主意。基本上,您必须为每个请求提供“会话id”。如何生成它是另一个问题,但我相信创建一些加密随机数在别处有介绍。我想知道你的答案。但正如我所搜索的,在会话中使用URL的方法是不安全的。没有更好的方法了?是的,事实上,在这种情况下,你不能既吃蛋糕又吃蛋糕。在你看来,这个问题的第一个答案是:获得194张选票,这是否确保它正常安全运行?我想知道你的答案。但正如我所搜索的,在会话中使用URL的方法是不安全的。没有更好的办法了?是的,事实上,在这种情况下,你不能既吃蛋糕又吃蛋糕。在你看来,这个问题的第一个答案是:获得194张选票,这是否确保了它的正常和安全?