2026-06-06 Cookie 安全属性修复
本次修复内容
- 新增统一 Cookie 设置封装
xn_setcookie(),集中处理安全属性。
- 新增 HTTPS 环境识别
xn_cookie_secure_on():支持 HTTPS、HTTP_X_FORWARDED_PROTO=https、REQUEST_SCHEME=https 和 443 端口判断。
- 登录 token
bbs_token 已改为通过 xn_setcookie() 写入和清理。
- 后台 token
bbs_admin_token 已改为通过 xn_setcookie() 写入和清理。
Cookie 安全策略
bbs_token:HttpOnly、SameSite=Lax,HTTPS 环境自动追加 Secure。
bbs_admin_token:HttpOnly、SameSite=Strict,HTTPS 环境自动追加 Secure。
- PHP 7.3+ 使用
setcookie() options 数组写法;低版本使用兼容写法追加 SameSite。
已修改文件
xiunophp/misc.func.php
model/user.func.php
admin/admin.func.php
验证脚本
- 新增
cookie_security_test.php 用于模拟前台登录 token 和后台 token 设置、校验与清理。
- 验证方式:
cookie_security_test.php?action=set:模拟登录并输出 Set-Cookie 响应头。
cookie_security_test.php?action=check:模拟后台访问并校验服务端能读取 token。
cookie_security_test.php?action=clear:清理测试 Cookie。
验证结果
- HTTPS 环境下
bbs_token 已输出 secure; HttpOnly; SameSite=Lax。
- HTTPS 环境下
bbs_admin_token 已输出 secure; HttpOnly; SameSite=Strict。
- 浏览器
document.cookie 读不到 bbs_token 和 bbs_admin_token,确认 HttpOnly 生效。
- 服务端
$_COOKIE 可正常读取两个 token,确认不影响正常登录和后台校验流程。
欢迎大家加入QQ交流群:785017513
最后于 17小时前
被xiaobai编辑
,原因: