PHP 会话和 Cookie 的新手。
我有一个旧的登录脚本,我正在尝试升级它以使用新的跨子域功能。都是用$_SESSION
而不是写的$_COOKIE
。(根据我的准备,任何设置为 SESSION var 的内容都不会跨域传递,即使在我为整个域和根目录设置了 cookie 参数之后也是如此)。
如果我执行 Search and Replace for$_SESSION
并将其更改为$_COOKIE
,我是否必须进行大量语法更改,或者大部分操作方式相同?
这通常是一个非常糟糕的主意。对所有会话相关数据使用 cookie 意味着您可能会发布内部数据。因此,如果您有一个 cookie isAdmin=false,那么您可以让攻击者安静地轻松获得管理员权限。此外,每个请求都会传输所有 Cookie,这也会导致更多流量。
另请注意,cookie 是使用函数 setcookie() 设置的。$_COOKIE 通常是只读的。
$_SESSION
可用于读取和写入会话数据。$_COOKIE
用于阅读。
设置 cookie 的一个潜在问题是必须setcookie
在任何浏览器输出之前设置它们……如果在页面呈现期间或之后用于写入会话数据,这可能会破坏您的代码$_SESSION
(因为可以随时设置会话数据)。
跨域会话将是一个安全漏洞,从它的声音来看,处理用户凭据时的跨域 cookie。