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