php - 还记得我 JavaScript 吗?

标签 php javascript cookies

如何正确编写脚本来设置 cookie,以便在选中登录表单上的复选框时记住用户的用户名和密码?

另外,如果这可以用 PHP 完成,请告诉我。

最佳答案

存储密码内存内容的最佳方法是将其与一些浏览器特定数据一起存储为 md5 哈希值。例如,您存储一个字符串,例如

username-4155b1b6e53ad73e06c4c58e709cdeea19915ea84de517500d9ba3280e27cf59

例如,您可以像这样在 PHP 中生成此字符串

$string=$username.'-'.md5(substr($http_user_agent, 5, 10)) .md5($password).md5(substr($http_user_agent, 0, 10));

我们的目标是让我们的字符串足够复杂。在登录阶段,我们用只有我们知道的方法提取密码md5。

$somearray=explode('-', $string);
$username=$somearray[0];
$passwordmd5=str_replace(md5(substr($http_user_agent, 0, 10)),'',str_replace(md5(substr($http_user_agent, 5, 10)),'', $string));

现在,我们可以像这样在数据库中进行比较,

select * from users where username='$username' and md5(password)='$passwordmd5';

HTTP 用户代理的东西消除了一点未经授权使用 cookie 字符串的风险。尽管未经授权的人窃取了 cookie,但他无法在其他浏览器中使用该 cookie。如果我们没有这样做,具有相同字符串的人可能会表现得好像他拥有密码一样,并且可以作为我们的真实用户登录。

关于php - 还记得我 JavaScript 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318975/

相关文章:

google-chrome - 没有 "SameSite"属性的 cookie 在不同的子域上发送

java - cookies 教程问题

PHPUnit - 模拟 S3Client 运行不正常

javascript - 使用 HttpClient 的模块是否应该在导入中声明 HttpClientModule?

javascript - 如何一次验证文本框或浏览按钮?

javascript - keydown 或 keyup 上的 jQuery 调用事件

验证数组的PHP函数

php - HipHop for PHP 上的 apache 基准测试

php - 在 IE 8 中遇到问题对象需要错误,灯箱在 IE 8 和 IE 7 中不起作用

node.js - 在哪里可以看到服务器上使用 Express-Session 设置的 Set Cookie header ?