ユーザーが Web サイトの 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 ハッシュ番号、およびセパレーターは、開発者によって設定されます。UniqueID と md5 ハッシュ番号がわからないため、ユーザーは Cookie を操作できないという考えです。以下のコードは、各 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";
}
この方法はセキュリティが厳しいのか、それとも抜け穴があるのか 疑問に思っています。批判と訂正を歓迎します