这是一个关于服务器、浏览器的问题,关于cookie的跨域问题我们在本文不作过多介绍,总之,为了安全起见,cookie只在特定的域名下才生效.
WordPress中也是这样,我们可以找到WordPress内核中有关cookie的一些函数,它的参数中都要求有一个域,不过对于不同的服务器而言,可能WordPress的默认设置又有些不同.
据一些资料上显示,WordPress的默认设置是:
define('COOKIE_DOMAIN', '.example.com');
这就是说,WordPress中的cookie在example.com及其所有子域名中都是有效的,例如你在自己的主站登录了,然后在子域名中的这个登录信息也同样有效.
不过这种没有域名限定的设置会带来一些安全问题,例如你把子域名开放给所有用户,部分用户在一个子域名下设置了和另外一个子域名一模一样的cookie(虽然这种情况比较少),就有可能造成登录信息混乱,甚至出现你可以登录别人的账号的情况.
因此,很多人建议在wp-config.php中增加一句为:
define('COOKIE_DOMAIN', 'www.example.com');
从而让cookie只能在这个域名下生效,不过有些时候我们也需要cookie在一些子域名下生效,以实现一些特殊要求,这种情况一般你完全掌控自己的这些子域名,并且这些子域名使用同一个数据库,不至于出现上面说的串线问题.
新闻热点
疑难解答
图片精选