Cookie安全php

Cookie安全php,php,security,cookies,Php,Security,Cookies,我对登录表单的“记住我”部分使用基本的cookie系统。代码如下: if(isset($_POST['submit'])) { $username = $_POST['username']; $password = $_POST['password']; if($username&&$password) { $connect = mysql_connect('localhost','root',''); mysql_sel

我对登录表单的“记住我”部分使用基本的cookie系统。代码如下:

    if(isset($_POST['submit']))
{
$username = $_POST['username'];
$password = $_POST['password'];

    if($username&&$password)
    {
        $connect = mysql_connect('localhost','root','');
        mysql_select_db('phplogin');
        $query = mysql_query("SELECT * FROM utilisateurs WHERE NomUtilisateur='$username' AND MotDePasse='$password'");

        $rows = mysql_num_rows($query);
        if($rows==1)
        {
            if($_POST['checkbox'])
            {
                setcookie('username',$username,time()+3600);
                header('Location: membre.php');     

            }else{$_SESSION['username']=$username;header('Location:membre.php');}
        }else echo "Something something error";
    }else echo "Something something darkside";
}

我不确定是否需要保护饼干,如果需要,如何保护?我真正想做的就是不允许人们使用假cookie登录另一个用户帐户,或者在cookie中清除敏感信息。

目前,任何人都可以自己登录,只要他知道用户的用户名。即使设置了cookie,您也需要有一个过程来识别用户,即他们是真正的客户。例如,当用户登录时,您可以保存cookie中保存的随机字母数字字符串,并针对该用户保存数据库,下一次,当您用数据库中的值交叉检查字符串并记住每X天后更改字母数字字符串时,这可防止攻击者复制某人的cookie并使用其登录。像这样的

$uniquekey     = 'A234W';
$randomstring  = sha1(strval(rand(0,microtime(true))+ $uniquekey + strval(microtime(true))));
setcookie( 'loginID', $randomstring, time()+60*60*24*7,'/', 'www.yoursite.com', false, true);  

当读取cookie时,使用
mysql\u real\u escape\u string
过滤任何恶意代码

现在任何人都可以创建cookie,以任何用户的身份登录,只要他知道自己的用户名。除此之外,在数据库中存储明文密码是一个巨大的难题!嗯,这一点都不好=/我仍然没有在代码中添加所有的crypt部分。所有内容仍在本地服务器中,因此没有问题。如果您现在不添加它,很可能会忘记或懒得在以后添加它,您的代码也会受到攻击。对于此代码,只有
microtime(true)
部分实际上是哈希输入,因为您使用算术加法。这无关紧要。使用算术加法,
'A234W'
会产生
0
。我刚才给出了一个例子。他可以使用任何随机字符串生成器。:)-1,你应该使用会话启动,而不是自己滚动。@Rook我想cookie可能很有用,只要你安全地使用它