我已閱讀有關用戶能夠操縱網站cookie並使用它來利用安全漏洞的信息。我做了一個搜索,發現了一個在線發佈的想法。這裏是下面的代碼,在用戶的用戶名和密碼被認證之後;如何加密網站cookie
$Separator = '--';
$uniqueID = '[email protected]';
$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 = '[email protected]';
$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";
}
我想知道如果這種方法的安全性緊張或者有漏洞了。批評和更正歡迎
md5是**不安全**用於任何類型的安全 –
除非您有一個非常好的理由,否則完全隨機的cookie與服務器端存儲的所有相關信息應該是首選。 – Thilo
@Thilo:通過使用會話已經在PHP中爲您實施。 –