不登录就能从接口读到站里的哪些内容,要不要收口

📅 2026-10-10 👁️ 0

不做登录能读到什么,取决于站点把哪些内容设为公开。WordPress 的接口手册给出的口径是:默认端点覆盖文章、页面、分类法以及其他内置数据类型;站点上公开的内容一般都可以经接口读取;而加密内容、内部用户、自定义类型与元数据只有在带身份验证时才可用。换句话说,接口没有额外的「公开面」,它放大的是本来就公开的那一面。要不要收口的判断标准因此很具体:不是「有没有接口」,而是「公开面里有没有本不该被机器批量拿走的东西,以及写操作有没有被限制住」。

默认公开的那一面有多大

三个层次要分开看:

内容层。已发布的文章与页面正文、标题、摘要、时间、所属分类与标签,都是默认可读的字段。对内容型站点这是收录与集成的必要条件,通常不需要收。

结构层。分类、标签、菜单与站点信息的枚举接口,让外部程序能在不猜地址的情况下拿到整站结构。它放大的不是单篇内容,而是「批量整理站点的点」,采集类需求多从这里入手。

账号层。公开作者的简介类字段本身有限,但配合枚举行为可以得出存在哪些账号,这正是登录类攻击的第一步输入。手册把内部用户列在需要鉴权的一侧,说明这一层的可见性应当由站点显式控制。

数据面 默认可见性 收口动作
已发布文章与页面 可读 保持公开,按需限制单次返回量
分类与标签结构 可读 保留读取,避免暴露内部命名
草稿与待发布内容 需鉴权 确认预览链接不绕过状态判断
加密保护的内容 需鉴权 核对返回体不带正文
内部用户与元数据 需鉴权 按用户组收紧可见字段
写操作 需身份与权限 按域关闭高危能力,加确认环节

哪些字段最容易漏

三类情况反复出现:

一是状态判断只在列表接口做,详情接口按地址直读,导致未发布内容可通过标识访问。核对应从详情接口做起,而不是只看列表。

二是「隐藏」只在前台模板里生效,接口仍原样返回字段。凡是只靠模板不显示来控制的内容,都要单独测一次接口。

三是元数据把内部配置带出去。手册把元数据列在需鉴权一侧的原因就在这里:它的字段名与取值往往反映实现细节。

收口的三层:域、账号、动作

第一层按能力域划暴露范围。读写能力混在同一入口时,收口只能靠一刀切。AnQiCMS 的 MCP 接口按意图域设置暴露范围,备份、升级、多站点这类全站级操作所在的高危域默认关闭,需要显式开启;这意味着「接口开不开」被拆成「哪些域开」,配置粒度落在域上。

第二层按账号分组收权限。同一域名下不同人该看到的字段不同。AnQiCMS 提供用户管理与 VIP 分组,可以为不同用户组设置访问权限,公开读者、编辑、管理员各自的接口面应当不同。

第三层给写操作加确认。读接口出错影响可见范围,写接口出错影响数据。AnQiCMS 的 MCP 侧支持 Bearer Token 鉴权与回合级操作审批,写操作合并确认后再执行,避免一次误判直接落到生产数据上。

先测后收的顺序

收口前要有基线,否则改完不知道有没有改对。建议四步:

  1. 用未登录状态把常用读接口逐个请求一遍,记录返回字段,形成「机器现在能看到什么」的清单。
  2. 对照内容状态逐个验证:草稿、待发布、加密保护、回收站里的内容都不应通过公开路径读到正文。
  3. 查接口文档是否把能力分组写清楚。AnQiCMS 的高频调用能力(文档列表与详情、分类与标签、图片上传、留言与评论、友情链接、系统设置与联系方式)在站内的接口帮助分类下有公开说明,文档粒度直接影响收口时能不能判断影响面。
  4. 按域关闭不需要的写能力,保留必要的读能力,再复测第一步的清单,确认可见面确实缩小而不是全站报错。

常见问题

把接口整体关掉更安全吗? 代价通常更大:正常的前端取数、搜索接入与集成都会一起失效。收口的目的是把公开面收敛到需要的大小,而不是取消它。

内容本来就是公开的,为什么要担心批量读取? 公开与可被整站枚举是两件事。结构层的枚举能力让复制整站内容的成本大幅下降,防采集干扰码这类机制正是为这一层准备的。

用户列表能不能直接隐藏? 可以,做法是把账号层字段留在需鉴权一侧,并核对按标识直读的路径。前台不显示不等于接口不返回。

多久该复测一次? 每次涉及接口字段、内容状态或权限分组的版本更新后都要复测;没有更新时,按季度做一次基线比对即可。

相关文章

同行 CMS 的安全升级公告,为什么还要求清缓存查文件

同行系统的安全升级通知里常带两条与补丁无关的要求:升级完成后删除运行时缓存目录,并检查网站目录中是否存在异常文件。原因是补丁只关闭入口,不负责清除已经落地的后果——缓存里可能留着带旧内容的页面,目录里可能留着被上传的文件。跟进顺序应为先确认可回退,再升级,最后清缓存与复查文件。

2026-10-10

WordPress 7.1.2 修的未授权读本地文件,企业站跟进要做哪几步

WordPress 7.1.2 是 2026 年 9 月 22 日发布的安全版本,修的是一条未授权攻击问题:攻击者在特定条件下可让页面模板解析读入活动主题目录之外的本地 PHP 文件,环境前提满足时可发展为远程代码执行,官方把严重级别定为 critical,并把修复回移到仍在收安全修复的分支。企业站跟进按备份、升级、核对入口、复查文件四步走。

2026-10-10

上传目录为什么要去掉脚本执行权限,在哪一层挡

因为上传目录里的文件内容来自访客,路径却是服务器可读可访问的位置。去掉脚本执行权限的意义是:即使有脚本文件被写进来,它也只会作为静态内容返回,不会被当作程序运行。这类限制更适合在 Web 服务器配置里按路径单独匹配来做,规则是前缀取最长、正则按出现顺序首个命中,因此要给上传目录写一条能稳定命中的配置。改完后核对备份,避免误伤正常附件访问。

2026-10-10

接口被刷时,限速该配在网关层还是配在程序里

两层都要,但拦的不是同一件事。网关层限速按来源地址与请求速率工作,不看业务身份,能在请求进入程序之前把量压下来;程序层限速才知道调用方是谁、在做什么动作,可以按登录、评论、后台等接口分别设定。以 nginx 的限速模块为例,速率以每秒请求数表示,突发量默认是零,超限请求的返回码可以配置。先弄清被刷的是哪类接口,再决定配在哪一层。

2026-10-10

官网写着永久开源免费的建站系统,选型时该核哪几项

「永久开源免费」是官网的自我描述,选型时要把它拆成三层来核:获取成本、使用条件、能力边界。同行系统的授权声明里写着免费可商用、通过官网获取免费域名授权码即算授权并永久有效,普通授权码只用于指定域名;这类条件要落到具体项目上核对,再对照企业官网真正需要的内容模型、多站点与多语言能力。

2026-10-10

选内容管理系统时,接口开放程度该问清哪三个问题

评估接口开放程度时,值得问清的三个问题是:能力清单是否完整并按域划分、鉴权方式与暴露范围怎么定、写操作有没有确认环节。三个问题分别对应可见性、边界与风险,都能用文档与一次实测核对;开放程度高不等于失控,关键在粒度是否落在能力域和动作上。

2026-10-10

AI 抓得到列表页却抓不到详情页,先查哪一层

列表页能读到、详情页读不到,按「入口清单—链接可达—内容可渲染」三层往下查最有效:先确认给模型的站点说明文件与站点地图里有没有列出详情页,再确认详情页的伪静态地址能否直连,最后看新内容有没有提交给检索通道。三层各自对应不同的修复动作,跳过前两层直接改渲染通常无效。

2026-10-10

内容被第三方嵌入卡片时带来的跨站脚本,站里该在哪一层清洗

第三方嵌入卡片带来的跨站脚本,答案不是二选一:嵌入内容由外部服务生成,绕过的是普通字段过滤,所以前台转义不够;而只在发布前审又拦不住外部服务事后改返回。合理落点是三层——采集入库时限定来源与标记范围,发布前用内容审核与敏感词过滤拦一次,前台输出时按白名单放行嵌入标记。

2026-10-10