
自定义查询需要明确内容类型、发布状态和访问条件。后台预览里能看到某篇内容,不代表匿名访客也应看到;应检查查询代码与实际公开HTML,不能只靠隐藏卡片或菜单来保护资料。
先定义允许公开的对象
列明应展示的文章、产品或案例范围,排除内部记录、待审核稿和私有内容。测试时使用可识别的虚构样例,不把真实客户资料作为试验。分类名叫“内部”也不构成访问控制,真正边界要落实到查询和权限处理。
读取查询参数和扩展位置
查看组件本身设置及Query ID对应逻辑,确认是否显式改变post_status、内容类型或元查询。需要根据当前用户改变结果时,应使用受支持的权限机制。不要让URL参数直接成为未经验证的查询字段,也不在公开页输出完整调试数据。

把筛选和授权分开判断
分类、标签和自定义字段可组织内容,但它们不自动限制原始详情页或接口访问。若内容必须保密,还要独立检查文章权限、下载资源和缓存。列表不显示某条记录,只能证明这一入口没列出,不能报告资料已受保护。
从匿名环境验证结果
退出登录检查卡片、源码、分页和相关接口,确保没有草稿标题、摘要或敏感字段泄露。再用有权限的测试用户确认编辑预览正常。公共缓存不应把授权用户专用结果分享给匿名访客,错误页面也需避免暴露内部对象清单。
关键区别

查询筛选:决定列表取什么;不是完整访问控制。
发布状态:限定内容可见性;后台预览需分开。
资源权限:保护详情和下载;不由隐藏卡片代替。
怎样确认处理到位
匿名HTML、分页和接口只含允许公开资料,授权预览保持正常,私有详情和文件另有保护,缓存和错误信息未突破访问边界。
容易误判的边界
本文不提供绕过权限读取内容的查询代码。需要公开什么由真实业务授权决定,不能以“搜索引擎更喜欢内容多”为理由暴露内部资料。
