PHP用COOKIE实现一套SESSION机制
PHP的 SESSION 是根据访客浏览器传过来的SESSION ID(表现为一个COOKIE) 来找到服务器的会话文件(/tmp/SESS_ID),以便通过$_SESSION数组读取里面的内容(会话变量). 利用PHP的SESSION可以很方便地实现购物车,验证码,csrf_token的记录. 可以把一个关联数组赋值给一个会话变量. 两种方式的比较 : COOKIE(PHPSESSID) -> /tmp/SESS_XXX -> $_SESSION数组 COOKIE(MYID) -> 查询数据库进行身份验证 -> online表(session字段) 密码入库处理: $salt = sha1(uniqid(mt_rand(), true)); //mt_rand()表示前缀,true表示在末尾加上熵. $pwd_db = sha1($salt.sha1($pwd_user)); //PHP官方建议使用password_hash取代sha1这些哈希"加密" 其中随机生成的盐值$salt和加盐散列后的密码$pwd_db都存储到用户表对应的用户记录里. 验证密码时,根据公式算出用户输入的密码,然后进行字符串比对(==或===或strcmp). 这样就算数据库里的$pwd_db泄露了,攻击者也很难通过彩虹表查到密码的明文. 其中: uniqid获取一个带前缀,基于当前时间微秒数的唯一ID.