Php 禁用Cookie时使用会话?

Php 禁用Cookie时使用会话?,php,html,session,cookies,sessionid,Php,Html,Session,Cookies,Sessionid,我要做一个时间表系统,我登录了一个有效的页面,但是我需要使用sessions来知道谁登录,如果他们仍然登录,但是必须禁用cookies,所以我尝试将SessionID保存到MySQL数据库,但是我不知道如何在另一个页面上检索该会话ID,所以有什么想法会有所帮助吗?不确定im是否在正确的行上您需要通过url传递会话ID,如下所示: http://local.domain/index.php?sessionID=7387837rhdfjfytyfegwfvkewbf 显然,上面的GET请求使得会话I

我要做一个时间表系统,我登录了一个有效的页面,但是我需要使用sessions来知道谁登录,如果他们仍然登录,但是必须禁用
cookies
,所以我尝试将
SessionID
保存到
MySQL
数据库,但是我不知道如何在另一个页面上检索该会话ID,所以有什么想法会有所帮助吗?不确定im是否在正确的行上

您需要通过url传递会话ID,如下所示:

http://local.domain/index.php?sessionID=7387837rhdfjfytyfegwfvkewbf

显然,上面的
GET
请求使得会话ID非常明显。实际上,在正常情况下,只有用户自己会看到它。因此,安全隐患并不是非常糟糕,但它们是为恶意用户欺骗会话而存在的

使用此方法的提示:

  • 不要使用增量sessionid(100101102)——
  • 虽然您可以在每页上使用
    POST
    请求,但这无助于安全性,而且可能会让您的用户感到不安/反感(考虑按后退按钮)
  • 仍然在数据库中维护会话,使用
    $\u GET
    中的唯一会话ID作为键
  • 确保会话超时,并快速执行。每次刷新时更新上次访问时间,以确保活动用户不会超时

这是一种错误的方式。Bcoz最好不要显示您的会话ID。它应该被重新命名为隐藏。它可能被用于黑客攻击。如果您想使用会话id,为什么不在页面顶部使用session_start()。@anujarora PHP将其会话id存储在cookie中。如果Cookie被禁用,则无法存储会话ID。这使得通过url传递会话ID成为唯一可行的选项。我同意这不安全,但是
session_start()与此问题无关。不管cookies是否启用,你都需要它。好的,我知道了。和会话_start();没有用。但我仍然认为这不是一个好的选择。您可以将其作为post值传递,也可以发送存储会话的id,或者可以加密会话id。
post
值不再安全,它们只是不可见。加密
sessionID
也不会使它更安全。无论是否加密,它仍然是可以用来打开前门的钥匙。我曾想过这样做,但正如评论所说,它不是很安全,我认为如果我使用数据库,它将是一个更好的系统。你能给出一个理由,为什么必须禁用cookie吗?其他传递会话id的方法是不安全的,容易被会话劫持。即使严格的浏览器设置通常也允许短时间的会话cookie(关闭浏览器后删除),它们与永久cookie不同。只是我被要求生成一个系统,在禁用cookie时可以使用