为Mac设备设置cookie过期的正确方法
我的一个项目中登录系统使用我自己的登录系统和Facebook登录。问题是Facebook登录似乎没有在MAC设备上注销。为Mac设备设置cookie过期的正确方法
我的代码
session_start();
if(isset($_COOKIE['checkuserst'])) {
unset($_COOKIE['checkuserst']);
setcookie('checkuserst', '', time() - 3600, '/');
}
unset($_SESSION['username']);
header("Location:index.html");
所有窗口浏览器除了Safari和在Mac没有浏览器的cookies即将到期的饼干到期。
有人可以指出正确的方法来解决这个问题。
您不应该依靠浏览器中的cookie过期来确定用户是否已注销(因为用户容易制造欺骗性cookie)。将会话到期存储在$_SESSION
或数据库中。当您收到请求时,即使存在Cookie,也要先检查服务器存储器中的匹配cookie,并确保它未到期。
这样在浏览器(如浏览器不删除过期的cookie),无论发生什么事不会影响你的服务器端安全
@感谢您的解释,但我的直接问题是,cookie不会在mac设备上过期。 。 – Jordyn
@Jordyn帮助我理解为什么这对你很重要。为什么这是一个问题?消极影响您的网站? – BeetleJuice
由于cookie不会过期,因此mac用户无法注销。这是问题。 – Jordyn
可以准确说明你希望看到什么和发生了什么呢? – BeetleJuice
@BeetleJuice所有的Windows浏览器cookies都将过期,除了safari和mac,浏览器的cookies都不会过期。 – Jordyn