簡體   English   中英

Session.cookie_domain 在 php.ini

[英]Session.cookie_domain in php.ini

我一直在盡可能多地閱讀有關 php.ini 文件的信息,但我沒有發現在 ZE1BFD762321E409CEE4AC0B6E84 中不設置 session.cookie_domain 是否有害/危險。

我們在生產環境中,這沒有設置。

不設置是否存在安全問題。 Cookies 似乎運行良好,沒有真正的問題。

php.ini 文件如下所示:

session.cookie_domain =

原始答案(編輯刪除不正確的部分)

我不同意接受的答案。 我認為session.cookie_domain不是允許您限制子域但允許子域的配置指令。 如果您閱讀PHP 手冊,它會說如果指令的值未定義(無,默認值),則生成 cookie 的機器的主機名將用作 cookie 域。

 session.cookie_domain specifies the domain to set in the session cookie. Default is none at all meaning the host name of the server which generated the cookie according to cookies specification. See also session_get_cookie_params() and session_set_cookie_params().

此外,默認情況下,PHP 被配置為會話對於域來說是唯一的。 如果您不指定一個但如果服務器的域是 example.org,則您的 cookie 將僅對 example.org 域有效,而對任何子域(如app.example.org或任何其他域(如corp.com )無效corp.com

session.cookie_domain的目標實際上是允許使用子域,因此如果您設置session.cookie_domain = "example.org"它將充當通配符並接受任何子域。

因此,設置通配符session.cookie_domain = "example.org"比不設置更容易受到攻擊。

更新的答案

通過閱讀Set-Cookie - MDNUsing HTTP cookies - HTTP - MDN ,似乎不推薦使用 PHP 行為。

Domain=<domain-value>

定義將 cookie 發送到的主機。

如果省略,則此屬性默認為當前文檔 URL 的主機,不包括子域。

與早期規范相反,域名 (.example.com) 中的前導點被忽略。

不允許使用多個主機/域值,但如果指定了域,則始終包含子域。

Domain 屬性指定哪些主機可以接收 cookie。 如果未指定,則該屬性默認為設置 cookie 的同一主機,不包括子域。 如果指定了域,則始終包含子域。 因此,指定域比省略它的限制要小。 但是,當子域需要共享有關用戶的信息時,它會很有幫助。

例如,如果您設置 Domain=mozilla.org,cookie 在子域(如 developer.mozilla.org)上可用。

當前的行為似乎是忽略前導點並在您指定域時隱式允許所有子域。 所以事實上,最終的答案是使用Domain不如不使用它安全。 所以現實與公認的答案完全相反。

此配置指令允許您限制子域,您的會話 cookie 將從這些子域中有效。 由於它是空的,因此您接受來自所有域的會話 cookie - 因此,任何子域都運行良好是正常行為。

允許 php 會話轉移到子域也很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM