Хранение cookie в базе данных - идея HORRILBE. Это означает, что если у злоумышленника была уязвимость SQL-инъекций, он мог бы сразу получить доступ, не взламывая хешированный пароль.
Говоря о том, что вам нужно использовать sha256 для паролей, если вы используете md5 (), вы технически уязвимы для атаки и вам может быть выдан номер CVE.
НИКОГДА не создавайте свои собственные идентификаторы сеансов, используйте session_start () и суперглобальную переменную $ _SESSION.
Это безопасный способ перенаправления людей. Если вы не умрете после header (), оставшаяся часть php-кода будет STILL EXECUTED, даже если она не отображается обычными браузерами (хакеры все еще видят это:)
header("location: index.php");
die();
Если честно, если безопасность вас смущает, не пишите системы безопасности. Люди написали более 1000 систем входа в систему только для PHP, и большинство из них уязвимы. Этот проект имеет безопасную систему аутентификации:
http://code.google.com/p/michael-the-messenger/downloads/list