Skip to content

[Bug] 普遍性问题:前台无条件 session_start 导致 CDN 无法缓存页面 #700

@imysen

Description

@imysen

主题版本

1.3.5

Bug 类型

该 Bug 是后端问题

浏览器

此问题与前端无关

普遍性

问题描述

Argon 在前台请求中 无条件调用 session_start() 并下发 Cookie(包括 PHPSESSID 和 argon_user_token),即使是未登录访客访问普通文章页或首页。
导致cdn无法缓存
functions.php 419-435行
//访问者 Token & Session function get_random_token(){ return md5(uniqid(microtime(true), true)); } function set_user_token_cookie(){ if (!isset($_COOKIE["argon_user_token"]) || strlen($_COOKIE["argon_user_token"]) != 32){ $newToken = get_random_token(); setcookie("argon_user_token", $newToken, time() + 10 * 365 * 24 * 60 * 60, "/"); $_COOKIE["argon_user_token"] = $newToken; } } function session_init(){ set_user_token_cookie(); if (!session_id()){ session_start(); } } session_init(); //add_action('init', 'session_init');

复现步骤

//访问者 Token & Session
function get_random_token(){
return md5(uniqid(microtime(true), true));
}
function set_user_token_cookie(){
if (!isset($_COOKIE["argon_user_token"]) || strlen($_COOKIE["argon_user_token"]) != 32){
$newToken = get_random_token();
setcookie("argon_user_token", $newToken, time() + 10 * 365 * 24 * 60 * 60, "/");
$_COOKIE["argon_user_token"] = $newToken;
}
}
function session_init(){
set_user_token_cookie();
if (!session_id()){
session_start();
}
}
session_init();
//add_action('init', 'session_init');

截图

No response

附加说明

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions