cookie 相关
问题
lti tool不能传递cookie (iframe方式)
SESSION知识
`session.gc_maxlifetime` integer
`session.gc_maxlifetime` 指定过了多少秒之后数据就会被视为“垃圾”并被清除。 垃圾搜集可能会在 session 启动的时候开始( 取决于[session.gc_probability](https://www.php.net/manual/zh/session.configuration.php#ini.session.gc-probability) 和 [session.gc_divisor](https://www.php.net/manual/zh/session.configuration.php#ini.session.gc-divisor))。
> **Note**:
>
> 如果不同的脚本具有不同的 `session.gc_maxlifetime` 数值但是共享了同一个地方存储会话数据,则具有最小数值的脚本会清理数据。此情况下,与 [session.save_path](https://www.php.net/manual/zh/session.configuration.php#ini.session.save-path) 一起使用本指令。
`session.gc_probability` integer
`session.gc_probability` 与 `session.gc_divisor` 合起来用来管理 gc(garbage collection 垃圾回收)进程启动的概率。默认为 `1`。详见 [session.gc_divisor](https://www.php.net/manual/zh/session.configuration.php#ini.session.gc-divisor)。
`session.gc_divisor` integer
`session.gc_divisor` 与 `session.gc_probability` 合起来定义了在每个会话初始化时启动 gc(garbage collection 垃圾回收)进程的概率。此概率用 gc_probability/gc_divisor 计算得来。例如 1/100 意味着在每个请求中有 1% 的概率启动 gc 进程。`session.gc_divisor` 默认为 `100`。
COOKIE知识
Same Site 属性
- Strict
- Lax
- None
ini_set('session.cookie_samesite', 'None');
ini_set('session.cookie_secure', 1); //m
实验结果:
http时单独设定任意一项, chrome会警告必须一起使用或者没有在secure connection,重新计算cookie.
https时成功.
原因: chrome等浏览器默认samesite=Lax ,此模式在iframe请求不会带参数.
cookie 过期时间
ini_set('session.cookie_lifetime', 3);
cookie 域
待定
cookie path
待定
session path
待定
session_cache_limiter session_cache_expire
看一些文章是和history.go(-1)时表单显示相关,还未做相关实验
/* 设置缓存限制为 “private” */
session_cache_limiter('public');
$cache_limiter = session_cache_limiter();
var_dump($cache_limiter);
/* 设置缓存过期时间为 30 分钟 */
session_cache_expire(1);
$cache_expire = session_cache_expire();
var_dump($cache_expire);
处理方法
- 可配置选择是否开启url传参
- 自制证书和证书配置搭建https服务
结果
可使用关闭url传参实现登陆
参考问题
LTI and Moodle NEW SameSite=None; Secure Cookie Settings breaks LTI