我读过有关用户能够操纵网站 cookie 并使用它来利用安全漏洞的信息。我进行了搜索,发现了一个在线发布的想法。这是下面的代码,即用户的用户名和密码经过身份验证后;
$Separator = '--';
$uniqueID = 'jhlhgjh12u0@345';
$Data = $userID.' '.md5('65748');
$expire=time()+60*24;
setcookie('verify-user', $Data.$Separator.md5($Data.$uniqueID), $expire);
上面的代码将使用 uniqueID、userID、MD5 哈希数和分隔符设置 cookie。uniqueID、md5 哈希数和分隔符由开发者设置。这个想法是用户将无法操作 cookie,因为不知道 UniqueID 和 md5 哈希数。下面的代码用于测试每个 cookie 是否被操纵
if ($_COOKIE) {
$Separator="--";
$uniqueID = 'jhlhgjh12u0@345';
$Cut = explode($Separator, $_COOKIE['verify-user']);
if (md5($Cut[0].$uniqueID) === $Cut[1]) {
$_COOKIE['verify-user'] = $Cut[0];
} else {
echo "fake cookie";
}
}
else {
echo "fake cookie";
}
我想知道这种方法是否安全严格,或者是否也存在漏洞。欢迎批评和指正