据我所知,更改此名称不会有太大的影响,因此您不需要过多关注。PHPSESSIONID是其非官方名称,因此对其了解不多。
预防会话滥用的更重要部分是在任何表单中使用令牌。如果您需要更多信息,请告诉我。
另一个非常重要的方面是可能的SQL注入攻击,这可能会产生关键影响,因为您处理敏感信息。为了防止这种情况,我建议使用准备语句,更多信息请参见
此处。
但回到您的会话,很重要的一点是,在任何脚本启动时都要调用session_start并进行一些测试。下面是我处理会话的方法(欢迎提出任何批评意见)。此会话应设置一些标志,例如安全标志和http only,有关php会话标志的详细信息请参见
此处。
此外,会话应有限时间,并在此过期后自动丢弃。另一个小点是每次启动新会话时重新生成会话ID(值,而不是名称; )),此
函数正是这样做的。用户登录时只需调用它即可。
希望这可以帮助您,如果您有任何更多的问题,请随时提出。
以下是我在每个文件开头调用的函数,当然不包括登录页面:
function auth()
{
$curFile = basename($_SERVER["PHP_SELF"]);
if($curFile == "login.php")
{
return;
}
$domain = $_SERVER["HTTP_HOST"];
if(session_status() != PHP_SESSION_ACTIVE)
{
session_set_cookie_params(0, "/", $domain, true, true);
session_start();
}
$now = time();
if (isset($_SESSION["discard_after"]) && $now > $_SESSION["discard_after"])
{
session_unset();
session_destroy();
session_set_cookie_params(0, "/", $domain, true, true);
session_start();
}
session_regenerate_id(true);
$_SESSION["discard_after"] = $now + 120;
if ((!isset($_SESSION["angemeldet"]) || !$_SESSION["angemeldet"]) && basename($_SERVER["PHP_SELF"]) != "login.php")
{
header("Location: https://".$domain."/login.php");
die();
}
}
在我的登录文件中,我设置了如下会话:
session_set_cookie_params(1800, "/", $domain, true, true);
session_start();
session_regenerate_id(true);
$_SESSION["angemeldet"] = true;
$_SESSION["name"] = "Fany name";