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一年之内就会失效。