登录名和昵称在 WordPress 里不是一回事,而这件事经常被顺手忽略:安装时随手填的管理员账号,默认会把名字带进作者页、页面署名,甚至作者归档地址。它不算"被入侵",但它把本该内部的信息摆在了外面,属于该收口的基础项。
默认状态下会露出什么
- 署名:文章页上显示的作者名,通常是昵称或显示名。
- 用户页:WordPress 为每个用户生成一个公开可访问的作者页,内容取决于主题和是否装了作者归档类插件。
- 地址:作者归档的地址常常由登录名或昵称生成,默认值往往就是当初注册时填的那个。
- 登录名 ≠ 昵称:这一栏可以单独改,所以看到页面上是英文名、后台是中文名,属于正常现象,不代表被替换过。
能改的地方是有的:用户资料里可以单独设置对外显示的名字,也可以改作者别名,让归档地址不再直接对应登录名。改完别忘了,作者页、署名、归档地址会一起变,页面里指向作者的站内链接也要跟着核对一遍。
为什么这件事属于安全而不只是 SEO
因为它决定的是"谁在用这个账号"这一步。WordPress 官方文档对权限模型的描述很清楚:每个登录的用户都会按其用户角色获得对应的能力集合,角色本质上是权限组,能力才是具体权限;角色越高能力越多,管理员这类高角色还会继承下面几层角色的能力。WordPress 官方关于用户角色与能力的文档
也就是说,登录名一旦被猜到,攻击者要拿到的就是"这个角色能做的所有事"那把钥匙。所以这件事的性质是权限管理,而不是页面美化:改显示名只是让页面好看,按角色清点账号才是把口子关上。
怎么收口:四步操作
- 把对外显示的名字与登录名分开:用户资料里这两项是独立的,改显示名不改变登录名,页面上的署名也就不会暴露后者。
- 按角色清点账号:一个站该有几个管理员、谁需要"管理设置"这类能力、离职和项目结束的人该降到什么角色或直接移除,逐个确认。WordPress 官方没有公布"一个站点应该有几个管理员"或"多久该换一次密码"这类规定,这张表只能按你自己的协作需要定。
- 改作者别名后复核:署名、作者页、归档地址会一起变,页面里指向作者的站内链接也要跟着核对一遍,别只改一半。
- 最后才考虑接口:WordPress 官方 REST API 手册的表述是,站上公开的内容通常可以通过 REST API 公开访问,而私密内容、受密码保护的内容、内部用户以及元数据,只有在通过认证或你明确开放时才可获取。WordPress 官方关于 REST API 数据可见范围的说明所以"接口能不能看到我的用户"取决于数据本来是不是公开的,不取决于关不关接口;而有些主题或插件的前台功能依赖这条接口,关掉之后前台会直接坏掉,关之前先把依赖查清楚,为 SEO 关闭 WordPress REST API 前要先查编辑器和前台依赖列的就是这一步的查法。
什么时候可以不处理
- 单人站、账号名和站点品牌完全一致:没有额外信息量,处理收益很低。
- 作者页本身有内容价值(比如技术负责人页就是作品集):该保留,但要确保它呈现的是你想让人看到的东西。
- 多语言站共用一套账号:先按语言拆清楚归属,再谈别名,否则改了会影响所有语言版本。
- 只关心搜索表现、不承担运维的岗位:这件事应该交给能改账号的人,不要自己去猜权限模型。
怎么验证收口到位
三步:登录后台看"用户"列表,逐个问自己这个角色是不是这个人该有的;打开作者页链接,看地址和页面上还有没有登录名残留;再用 site: 查一下自己站里有没有带用户名的作者地址被收录,site: 的结果并不完整,所以要配合前缀一次查一个。Google 关于 site: 查询算符的说明
这一步顺带把"有没有你不认识的账号"一起查了。如果真翻出来一个,那不是配置问题而是安全问题,别在用户列表里点两下就完事,回到被入侵那篇的次序去处理。列表本身也要定期看:离职的人、临时帮忙的人、项目结束的外包,账号留在那儿就是长期敞开的入口。
如果你决定让作者页不再进索引,走的是索引设置而不是删页:robots meta 这类设置只有在抓取被允许时才会被读到,所以别一边用 robots.txt 挡抓取一边指望 noindex 生效,两者是冲突的;规则可以写在 head 里,也可以走 HTTP 响应头。robots meta 标签与 X-Robots-Tag 的规范至于 WordPress 为什么值得自己维护而不是全托管出去,WordPress 为什么便于做 SEO那篇讲的是使用条件那一半。
整件事其实不复杂:账号按角色清一遍,作者页按需处理一遍,然后每隔一段时间回来看一眼有没有多出来的账号、没有走的人还留着没有。能守住这三个动作,这个口子基本就关上了。
