如何避免同一域下不同目录之间的交叉读取?

时间:2009-12-28 04:09:32

标签: php cookies

如何避免同一域下不同目录之间的交叉读取? 例如,

setcookie('username', $username, strtotime('+1 months'), '/jp/', '.localdomain.com');
setcookie('username', $username, strtotime('+1 months'), '/cn/', '.localdomain.com');

当我使用$_COOKIE['username']读取

下的值时
  

/ JP /

  

/ CN /

分别? 我正在使用PHP。

2 个答案:

答案 0 :(得分:1)

要在同一个域上维护多个不同的会话,您需要调整session cookie parameters。它就像cookie参数,但专门用于会话cookie。

答案 1 :(得分:0)

如果设置了cookie路径,则该cookie应仅应用于路径及其子目录。我在manual中看不到任何其他内容,如果函数存在已知问题,则通常会在用户贡献的笔记中提及它们。

  

可在其上使用cookie的服务器上的路径。如果设置为“/”,则cookie将在整个域中可用。如果设置为'/ foo /',则cookie只能在/ foo /目录和所有子目录中使用,例如/ foo / bar / of domain。默认值是设置cookie的当前目录。

  • 你能否确认/ cn /中有/ jp /的cookie值可以100%确认?
  • 您是否有来自早期尝试的旧Cookie,该Cookie对整个域有效?
  • 你可以尝试在/jp/index.php和/cn/index.php中明确设置cookie,看看它们是否仍会干扰。 $path参数应该使这不必要,但总是值得一试。

无论如何,我会打赌啤酒那里有一个旧饼干或类似的东西。