為什麼 mod_usertrack 沒有設定 cookie?

為什麼 mod_usertrack 沒有設定 cookie?

我在 docker 中運行 httpd:2.4.57 。我還沒有弄清楚如何設定或查看 mod_usertrack 設定的 cookie。我檢查了兩個瀏覽器以確保 cookie 被允許。

我驗證了 mod_usertrack.so 檔案存在於容器中並且被正確引用。

$ ls -al | grep usertrack
-rwxr-xr-x 1 httpd httpd   43976 Oct 11 20:23 mod_usertrack.so

這些是 httpd.conf 中的指令:

LoadModule usertrack_module modules/mod_usertrack.so

CookieTracking on
CookieName session_id
CookieHTTPOnly on
CookieSecure off
CookieStyle RFC2965
CookieSameSite Strict

LogLevel warn

<IfModule log_config_module>
    LogFormat "%{session_id}n %r %t" common    
    CustomLog /proc/self/fd/1 common
</IfModule> 

這是輸出到我的日誌的範例:

- GET /api/pictures HTTP/1.1 [23/Oct/2023:19:27:29 +0000]

根據我讀到的內容https://httpd.apache.org/docs/2.4/mod/mod_usertrack.html,應該設定一個名為 session_id 的 cookie。我無法在日誌中或 Chrome 或 Firefox 的 webdev 工具中看到 cookie。

curl -I ...根據 @vidarlo 的要求,以下是我必須添加--insecure以忽略我的自簽名證書的輸出:

$ curl -I --insecure  https://localhost:8443 
HTTP/1.1 200 OK
Date: Mon, 23 Oct 2023 19:50:58 GMT
Server: Apache
Set-Cookie2: session_id=87aa60b1.608678a7cc2f9; path=/; SameSite=Strict; Secure; HttpOnly
Last-Modified: Fri, 20 Oct 2023 14:46:20 GMT
ETag: "1e7f-60826ef88e48a"
Accept-Ranges: bytes
Content-Length: 7807
Content-Type: text/html

答案1

有趣且出乎意料的是,session_id 的值會隨著每個請求而變化。

這並不意外。已經生成了除非請求中存在先前的值。

有趣的是,我看到它設定了 Set-Cookie2 標頭,而不僅僅是 Set-Cookie。這可以解釋為什麼它沒有出現在我的 webdev 工具中。

嘗試新增

CookieStyle Cookie

https://httpd.apache.org/docs/2.4/mod/mod_usertrack.html#cookiestyle

相關內容