#8171·etherpad

会话转移不会保留 HTTPS 上的偏好设置,并对 Cookie 进行双重编码

作者: jingkang0822创建于 2026年8月28日更新于 2026年9月17日
标签BugWaiting on Testing

说明

会话传输流无法可靠地维护客户偏好. 目前的执行工作有两个独立的问题:

  1. 在HTTPS上,垫面客户端在"prifs"中存储首选项,而转接UI只读作"prifsHttp",接收者总是写作"prifsHttp".
  2. 转移UI从 " document.cookie " 读取原始百分比编码饼干值。 将这个值传递给快递res.cookie ()' 重新编码% 的标志 。 在目的地,js-cookie'解码一次,留下了%的编码为`JSON.parse ()'不能解码的JSON。

f2cf95e06cd613fd0a06bbcb755e044c1dbfe306 ' 的开发 ' 上现载:

  • 复制步骤
  1. 在HTTPS上打开一个垫子并更改一个客户端偏好,如主题/font/聊天能见度.
  2. 从设置对话框创建会话传输 。
  3. 在不同的浏览器/设备中重新编辑代码。
  4. 打开一个垫子并检查所转让的优惠。

HTTPS 源代码不提交 " Prefs " 饼干。 在 HTTP 上, “ prefsHttp ” 存在, 一个典型的 JSON cookie, 如“ 7B% 22...% 22% 7D ” 是以编码形式提交的, 然后在写入目的地 cookie 时再次编码 。

实际行为

首选项在传输后缺失或无法读取; " pad cookie.ts " 在其 " JSON.parse () " 失败后退后。

预期行为

目的地在HTTP和HTTPS的部署方面应获得同样的偏好,在`js-cookie'预期的饼干格式中编码一次。

可能的方向

传输一个已解码/验证的首选对象或JSON字符串而不是饼干线字节,根据请求协议选择源/去向饼干名称,让一层进行饼干编码.

不需要插件 。 我发现了这一点,同时设定了一个自动代码审查工作流程的基准,并在报告之前手动核实了当前来源并重复搜索.