我有两个差异。我的 XAMPP
上的项目说它是 Project1
和 Project2
。
当我使用 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/