PHP用$ _COOKIE语法差异替换$ _SESSION

时间:2013-07-08 16:43:33

标签: php cookies

PHP会话和Cookie新手。

我有一个旧的登录脚本,我正在尝试升级以使用新的跨子域功能。它全部用$_SESSION而不是$_COOKIE编写。 (从我已经准备好的情况来看,即使在我为整个域和根目录设置了cookie参数之后,设置为SESSION var的任何内容都不会带来跨域,而是这样。)

如果我为$_SESSION执行搜索和替换并将其更改为$_COOKIE,我是否必须进行大量语法更改,或者大部分操作方式相同?

2 个答案:

答案 0 :(得分:1)

这通常是一个非常糟糕的主意。对所有与会话相关的数据使用cookie意味着您可以发布内部数据。因此,如果您愿意使用cookie isAdmin = false,那么您可以让攻击者安静地轻松获得管理员权限。此外,所有Cookie都会在每次请求时传输,这也会带来更多流量。

请注意,cookie是使用setcookie()函数设置的。 $ _COOKIE通常是只读的。

答案 1 :(得分:0)

$_SESSION可用于读取和写入会话数据。 $_COOKIE用于阅读。

设置cookie的一个潜在问题是必须在任何浏览器输出之前使用setcookie设置它们...如果在页面期间或之后使用$_SESSION来编写会话数据,这可能会破坏您的代码渲染(因为会话数据可以随时设置)。

跨域会话将是一个安全漏洞,从它的声音来看,在处理用户凭据时会跨域cookie。