我希望有人能够帮助解决我正在处理的一些代码这个小问题.请记住,这只是一个业余爱好网站,我知道有安全漏洞.我编写了一个名为set_remember_cookies的函数,当用户检查"记住我"框时,从我的登录脚本和注册页面调用该函数.
然后,每个受保护页面上的函数执行以下操作:
再一次,我知道在cookie中存储一个哈希密码是不安全的,但我现在并不担心.
我的问题是,我在下面包含的set_remember_cookies函数实际上并没有设置cookie.在安全页面上,第一步(检查cookie是否存在)失败.我还在浏览器中检查了cookie,但它们没有存储.
任何人都可以向我解释为什么这个功能没有设置cookie?我找不到任何错误,但希望有人可以!谢谢!
<?php
function set_remember_cookies($uid, $identifier, $password) {
mysql_query("DELETE FROM remember_cookies WHERE User_ID = '$uid'"); //Delete old cookie records
$salt = sha1(uniqid(time() . $_SERVER['HTTP_REFERER']));
$username_hash = hash("sha256", $identifier . $salt); //Hash the username
if (mysql_query("INSERT INTO remember_cookies (User_ID, Username_Hash, Salt) VALUES ('$uid', '$username_hash', '$salt')")) {
setcookie("Username", $username_hash, 60*60*24*365);
setcookie("Password", hash("sha512", $password . $salt), 60*60*24*365);
}
}
?>
Run Code Online (Sandbox Code Playgroud)
您的Cookie在1971年的某个时候到期!看起来你想要在未来一年抵消,所以试试吧
setcookie("Username", $username_hash, time() + 60*60*24*365);
Run Code Online (Sandbox Code Playgroud)
第三个参数不是'now'的偏移量,它是从Unix时代开始的偏移量- 相当精细的手册确实清楚了:)
| 归档时间: |
|
| 查看次数: |
2340 次 |
| 最近记录: |