把站点安全的任务按“首页做统一入口与全局防线,内页做逐页收口与最小权限”来分配,通常比平均用力更有效。首页负责全站通用的策略、证书、跳转、统一登录入口和整体监控;内页负责该页面独有的表单、上传、评论、参数和权限校验。两者不是谁更重要,而是职责不同。
很多站点把安全理解为给每个页面都加同样的防护:全站装同一个插件、每个页面都放同一段过滤代码、每个入口都要求同样的验证。结果是首页堆了很多全局规则,内页却缺少针对自身功能的校验。问题出在把“站点安全”当成一个可以复制粘贴的页面属性,而它实际上是一组分层职责。
从搜索引擎理解页面的角度看,抓取、索引和排名是不同环节,安全策略如果让首页可访问、内页却因权限或跳转被拦截,会直接影响内页被正常获取。所以分配任务时,要先分清哪些是全局的,哪些是单页的。
首页是用户和爬虫进入站点的第一站,适合放全站生效、不针对单一功能的措施:
判断标准很简单:如果一条规则对所有页面都成立,且不依赖页面内容,就放在首页或全站配置层,不要在每个内页重复实现。
内页才是具体功能发生的地方,安全任务要跟着功能走:
一个可执行的检查项:打开任意一个带参数的内页,把参数值改成越权或异常内容,观察返回的是正常错误页、空白页还是其他用户的数据。如果返回了不该看到的内容,说明该内页缺少逐页校验。适用条件是你能在测试环境操作;判断结果是出现越权数据即需优先修复该内页。
先做影响面大、修复成本低的任务,再做逐页收口:
如果只有一个人维护,不要试图一次覆盖所有内页。先保证首页和全局策略正确,再按“有数据写入 > 有用户身份 > 纯展示”的顺序推进。纯展示型内页的优先级可以靠后,但 robots 与状态码仍需正确,否则会影响抓取与索引。
用两个视角交叉检查:从首页出发,确认全局规则确实全站生效;从每个内页出发,确认该页独有的功能有对应校验。可以维护一张表,列出页面路径、是否含用户输入、是否涉及身份、最近检查时间。判断结果是:全局规则在首页配置一次即可,内页独有的校验必须出现在该页对应的处理逻辑中,两者都不应互相替代。
下一步,挑出访问量最高的三个内页,按上面的检查项逐一验证权限与输入处理,把发现的问题按“全局层修复”还是“该页修复”分类处理。