WordPress 中的 cookie 机制
WordPress 使用 cookies 技术(能够让网站服务器把少量数据存储到客户端的硬盘或内存,或是从客户端的硬盘读取数据信息的一种技术)以验证您的身份。WordPress cookies 有登陆用户 cookies 和评论人 cookies 之分。
用户
用户是在 WordPress 上有注册帐户的人员。当您从 http://example.com/wp-login.php 登陆到 WordPress 时,WordPress 就会存储以下两个 cookies:
- 认证 cookie(SECURE_AUTH_COOKIE 或者 AUTH_COOKIE),用于进行权限验证,比如一次会话结束或者长时间未进行操作,认证 cookie 将会失效,并要求操作者重新登录。
- 登录 cookie(LOGGED_IN_COOKIE),用于进行登录验证,只有当用户进行登出操作或者 cookie 期限超过一年时,登录 cookie 才会失效。
真 正的 cookies 包含了哈希数据,因此您不必担心有人看到您的 cookies 数据就能得知您的用户名和密码。哈希常被应用到输入数据中(在这里 是指你的用户名和密码),它是数学公式计算出的结果。对于当今的计算机水平而言,反转哈希(hash)几乎是不可能的。这就意味着破解哈希,发现输入数据 非常困难。
WordPress 使用登录 cookies 以绕过 wp-login.php 的密码输入部分。如果 WordPress 发现你的 cookies 有效,你 就可以直接进入管理界面,如果你没有 cookies,或已到期,或由于其它原因致使其无效(如手动编辑后失效等),系统就会要求你重新登陆以获取新的 cookies。cookies 生成一年后会自动失效。
可在 /wp-includes/pluggable.php 中设置或删除 cookies。从 WordPress2.5 以后使用 wp_set_auth_cookie () 函数(wp_setcookie () 函数已被废弃),这是设置 cookies 的函 数;wp_clear_auth_cookie () 函数(wp_clearcookie () 函数同样已被废弃),此函数将从客户端浏览器中删除 cookie,当用户在管理界面点击登出时会出现这一情况。
以下函数也使用了 cookies:
auth_redirect () 核查客户端浏览器是否有 cookie。如果没有,系统将显示 wp-login.php 登陆页面。登陆后,用户就可访问所需页面了。
评论人
当访客访问您的博客时,他们的计算机也会存储 cookies。这确实很方便,因为下次这个访客想对您的博客发表评论时就无需再次输入所有信息了。系统为评论人设置了三个 cookies:
- comment_author
- comment_author_email
- comment_author_url
同样,cookies 中的所有数据都已用哈希保护。访客返回您的博客时,WordPress 会检查他们是否有 cookie,然后会比较他们的哈希数据和 WordPress 数据库存储的数据是否一致。评论人的 cookies 一年之内就会失效。