所以我刚刚在我正在处理的开发项目上创建登录脚本时发现了一个很大的“不可以”。
在为 user_ID 和加密密码设置 cookie 时,我注意到通过 Google Chrome(或 Mozilla Firefox)上的简单扩展,我能够将用户 ID cookie 编辑为另一个用户的用户 ID,并访问该站点就像我是他们一样。
是否有人对我需要采取的路线有任何指示,以免发生这种情况?如果需要更多信息,请告诉我。
如果您不费心在服务器上验证它,为什么要存储加密密码?如果用户发送的用户 ID 但密码不匹配,则不应允许他们访问该站点。
在任何情况下,您都应该使用$_SESSION
变量来保存登录详细信息等信息。这样,用户只能看到会话 ID。虽然理论上可以猜测其他人的会话 ID(或窃取它 - 会话劫持),但您可以添加额外的层,例如要求用户代理和 IP 地址保持不变 - 这取决于需要多少安全性。
如果您需要让人们登录的时间长于浏览器会话,您应该将用户数据等内容存储在数据库中,然后创建一个与数据库行 ID 匹配的 cookie。仅供参考,不要使用自动递增的 ID