安全Cookies?

Jas*_*son 2 php cookies

我慢慢地移动我的(未发行)CMS $_SESSION$_COOKIE.互联网上的内容似乎更偏向于$_SESSION(我假设因为易用性).我正在寻找有关保存cookie的安全提示.目前,我正在以下列格式存储(有点类似的WordPress)cookie:

'logged_in_%hash_key%' => "username | %hash_password%"

每次登录后,我%hash_key%md5(MYSALT."something".UNIQUE_KEY)并且UNIQUE_KEY被重新生成(如果用户选择)以锁定可能存储cookie的其他计算机.它是一个随机的6个字符的字符串.

%hash_password% 类似地使用Salt和随机密钥(散列)生成.

我必须知道$_COOKIE(显然)的关键,然后我将字符串拆分为"|" 并查看用户名和密码.如果某些东西不匹配,我会破坏cookie.

我的问题是:你有关于以安全格式存储cookie的任何其他技巧,还是这样好

我还为每个请求的操作生成一个nonce.例如,我为'删除'创建了一个nonce,我希望在我的中删除该nonce $_REQUEST.如果我的回复不正确,我不会将用户注销,但我什么都不做.

正如梅加尔所指出的那样,我知道COOKIES本质上是不安全的,我仍然尽力让它变得安全.

Kra*_*anu 5

我从你的一条评论中看到你想要使用Remember Me登录.一个简单的解决方案就是增加$ _SESSION的到期时间(或实现自己的会话算法).但是,这通常被认为是不利的.这是一篇关于如何创建安全记忆的好文章:

http://jaspan.com/improved_persistent_login_cookie_best_practice

基本思路是:

饼干:

  • 用户名/电子邮件/等等
  • 代币
  • 系列

每次用户加载页面时都会更改令牌.但是,该系列在整个记忆期间保持不变.您可以在数据库(可能是MySQL)中保留系列和令牌的表格.

我不太擅长解释它,所以我强烈建议你阅读这篇文章.