Sco*_*ott 12 php security login remember-me
我正在编写一个"记住我"的登录表单,到目前为止我读过的教程(部分是为了确保我做得对)都说要将加密的密码存储在cookie中用户名.然后,每次PHP检查当前用户是否未登录时,请检查其cookie并查找这些值.如果用户名与密码匹配,则表示您已进入.
对我而言,这是一个巨大的安全漏洞.如果有人要破解数据库或以某种方式访问加密密码,他们甚至不需要破解它们.只需设置自己的cookie即可.我是正确的,还是只是偏执狂?
我的登录系统使用会话来跟踪当前用户ID,并使用1/0进行快速登录/注销检查.用户无法编辑会话AFAIK,因此这是安全的(如果不是,请告诉我).我只想将会话ID存储在cookie中,以后再恢复它,但这也不安全.
我非常关心用户的安全性,如何在保持功能正常的网站的同时妥善保护他们的信息?
Raf*_*ele 11
通常,当请求服务器记住用户时,它会在正常会话cookie旁边发出一个额外的cookie ,并且这个新字符串包含用户名和合理数量的随机字符,这些字符使得它不可用.这显然是保存在数据库中(出于安全考虑,您可能希望把它像一个密码,因此盐和哈希的话),并且用户使用相同的浏览器下一次连接时(假设旧的会话过期)的应用程序接收随机字符串,检查数据库,如果匹配,则验证用户.
另一种方法是将会话到期时间提前一些.
这里有什么安全漏洞?如果您使用一个好的随机生成器,唯一可能发生的事情是用户从共享浏览器访问应用程序,并且在结束时不会手动注销.
由于您处于不安全的渠道,因此常规规则始终适用:使用HTTPS,否则坐在您的计算机和服务器之间的任何人都可以窃取cookie(会话一或记住我)并且就像是您一样.
归档时间: |
|
查看次数: |
2657 次 |
最近记录: |