客户端安全性无法保证。
在任何浏览器上,您都可以轻松更改Cookie上的登录标志。因此,更建议将与登录相关的数据保存在php的$ _SESSION中。
如果您希望延长会话时间,只需查看session_set_cookie_params()
。
默认情况下,相同的会话将用于当前域和该域上的所有路径。因此,它对blahblahblah.com/和blahblahblah.com/login/都是可读的。
用户登录时,请在Session中保存用户名和密码的哈希值。
在每个脚本开始时,使用数据库中的用户名和密码验证会话。如果正确,则设置一个标志(例如$userLoggedIn = true)以指示服务器端用户已登录。否则为false。
以下是一些思考,没有特定的顺序:
在安全页面中,使用一个脚本进行会话/登录检查并将其包含在其中是个好主意。至于深度,如果将目录参数设置为“/”,则可以在整个网站中访问。
通常建议使用会话而不是cookie,因为会话更加安全,但您可以决定基于cookie中的加密数据构建自己的会话系统,这也可以工作,但是建议使用存储在服务器端的会话。
Cookie是按域名设置的,因此无论您在目录结构中有多深,Cookie都将被正确读取(只要您的域名保持不变 - 注意这意味着www.example.com和example.com可以是不同的Cookie)。
我建议进行身份验证检查,将Cookie中的会话ID与列出已登录用户及其会话ID的数据库表进行比较 - 此检查可以在自己的方法/包含文件中进行,该文件在每个页面上都被include()。 这样,检查将在每个页面加载时执行。注意,这是基本的方法,还有更安全的方法 - 其中一些已在其他评论中提到。
正如Mauris所说,客户端没有绝对安全的东西 - 不要使用Cookie存储“logged_in”值,然后检查其是否为true/false!