接口该开放哪些读能力,文档列表和联系方式算不算敏感

对外接口该开放哪些读能力,文档列表和联系方式算不算敏感数据——这两问要分开答:文档列表本就公开,可以放;联系方式虽然也显示在页面上,但属于要单独评估的高敏感读项。判断依据不是「页面上能不能看到」,而是「按接口方式批量取走之后会怎样」。页面一次只给一个人看一条联系方式,接口一次可以返回整站联系方式清单,读取成本与外泄面完全变了。按暴露范围分层设计读能力,接口才不会变成数据导出通道。

先按本来就公开与否分层

AnQiCMS 常被接口调用的高频能力包括文档列表与详情、分类与标签、上传图片、留言与评论、友情链接、系统设置与联系方式。这些能力不在同一个敏感级上,分层之后各层的开放策略不同。

读能力 数据可见性 批量取走的风险 建议开放方式
文档列表与详情 页面本就公开 内容被整站采集 可开放,配限流与采集防护
分类与标签 页面本就公开 结构被完整复制 可开放
上传图片 正文引用即公开 素材被批量下载、流量被消耗 按目录限定,避免全量列举
留言与评论 展示于页面 用户昵称与内容被聚合 只返回已通过审核的部分
友情链接 页面公开 合作方信息被整理走 可开放
联系方式 页面公开单条 汇总成可营销的联系人清单 按需返回,不做全量列表
系统设置 不公开 暴露站点配置与开关状态 默认不开放

读能力里哪几类要单独评估

联系方式与系统设置这两类最需要单独判断。联系方式被汇总之后就是可用的营销名单,也是钓鱼与电话骚扰的素材,接口侧更稳妥的做法是按单页或按栏目返回,不提供一次取全站的列表形态。系统设置属于另一类问题:它暴露的是站点的运行状态与开关,读到它就等于读到攻击面的地图,默认不开放。

留言与评论要区分「展示已通过审核的」和「包含待审的」。后者包含用户提交的原文与联系方式,任何情况下都不该出现在对外读接口里。上传图片同理,能按具体路径取即可,不要提供遍历目录的能力。

接口文档该写清什么

接口文档里每一个读能力要说明四件事:需不需要鉴权、返回哪些字段、频率限制、以及哪些字段仅在管理身份下返回。文档写不清这三层,接入方就会按最宽的方式调用,风险由站点承担。

鉴权部分要写清令牌如何传递、失效后怎么刷新;字段部分要写清哪些字段可能为空而不是省略;限流部分给出实际约束而不是「视情况」。接口帮助里把公开能力与需授权能力分成两张清单,比一张长表更好用,接入方一眼能判断自己要走哪条路径。

写操作与全站级操作的暴露范围

读能力之外更要控制的是操作范围。MCP 接口按意图域设置暴露范围,备份、升级、多站点这类全站级操作属于高危域,默认关闭,需要显式开启。多站点管理下这条尤其重要:一次配置错误不只影响一个站点,而是同批站点一起受影响。把高危域留在默认关闭状态,只按业务需要逐个打开,比事后回滚便宜得多。

写操作还要配回合级确认:批量写入合并成一次审批,让调用方看清这一批会改哪些对象,避免一次误调用改完全部文档。对外开放的读接口不触发这类风险,但一旦把写能力也放出去,审批与范围控制就要一起到位。

常见问题

文档列表能公开,为什么还要限流? 公开的是单页内容,被高频批量调用就变成整站采集。限流与防采集的干扰码配合,能保证正常接入不受影响,同时抬高整站搬走的成本。

联系方式接口只给管理员用太严格吗? 不一定。按页面返回是常见需求,关键是不提供「一次取全部」的形态,业务需要完整清单时走后台导出并留记录。

高危域默认关闭会不会影响正常集成? 只影响需要这些操作的集成。需要时显式开启对应意图域,比为了省事把全部能力打开更容易核对谁在用。

接口文档要写到多细? 写到接入方不必追问为止:鉴权方式、字段含义、空值行为、频率限制、错误返回形态,五项齐了才算可用。