php - 如果两个不同网站上的 session 名称相同会​​怎样?

标签 php session

我有两个差异。我的 XAMPP 上的项目说它是 Project1Project2
当我使用 Project1 登录时,我会检查身份验证,如果成功则存储 session 。 session 名称是 $_SESSION['username']
以上过程与Project2相同。

现在,为了防止直接访问,我使用这段代码(在两个项目中):

if($_SESSION['username']=="")
{
  header("location:index.php");
}

所以当我使用 Project1 登录时,我也可以访问 Project2(无需登录)。
为了防止这种情况,我知道如果我创建差异。两个项目的 session 名称然后它就解决了。

上面的东西在我的本地服务器上。所以我可以创建差异。我所有项目的 session 名称。

但假设我的网站在线,如果我的 session 名称与 diff 匹配会发生什么。网站?
有数百万个网站,我的 session 名称可能与另一个网站的 session 名称匹配。那么这可能会发生,因为某些用户使用另一个网站(在同一浏览器中)访问我的网站,他可能会在没有访问我的网站的情况下访问我的网站登录。

那么如果两个差异的 session 相同会发生什么。网站?用户可以在不登录的情况下访问我的网站吗? 如果是,那么我应该怎么做才能防止呢?

提前致谢。

更新

根据 @Let me see 的回答,如果两个站点在同一台服务器上运行,那么它们可能会共享数据。
那么假设服务器正在共享,那么我应该怎么做才能阻止它呢?

最佳答案

session (通常)使用 cookie 存储,并且 cookie 是特定于域的。因此,google.com 或 evilhackerdomain.ru 使用与您的应用程序相同的 session 名称并不重要;您的 cookie 只能由您指定的域读取/使用。即使在以其他方式管理 session 的不寻常情况下,它也将是特定于域的。

关于php - 如果两个不同网站上的 session 名称相同会​​怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20417642/

相关文章:

JavaScript 文件 - 未找到 404 - CodeIgniter - .htaccess

session - 在 Electron 中登录 github session

php - Symfony2 "This authentication method requires a session"登录检查错误

c++ - Qt Creator session 管理器错误?

php - 正则表达式 - 排除数字之间的 "-"

php - 比较php中的两个字符串并显示字符差异

php - 如何使用带有学说的事件监听器更改相关实体

php - 如何获取mysql数据库表上次更新的确切日期和时间?

php - 将不同的变量插入$_SESSION

php - 在 php 中保护 session 变量的有效方法是什么?