把站点安全目标拆成页面任务,核心做法是先把“安全”翻译成页面层面可检查、可修改、可验证的状态,再按页面类型分配动作。例如总目标“减少页面被篡改和注入的风险”,可以拆成表单页的输入校验、后台页的权限校验、展示页的输出转义、静态资源页的完整性检查。拆分的依据不是安全概念本身,而是每个页面承担的功能、接收的数据和暴露的入口。适用前提是站点已有可访问的页面清单和基本的技术维护能力;如果连页面由谁生成、数据从哪里来都不清楚,应先补这两项信息,再进入任务拆分。
按漏洞名称列任务,容易得到“防XSS”“防CSRF”“防越权”这类无法直接落到某个文件的清单。更可执行的方式是先给页面分类:
分类完成后,每个页面会自然对应一组任务。判断分类是否有效,可以看一条标准:同一类页面能否复用同一套检查项。如果两个页面被分到同一类却需要完全不同的处理方式,说明分类太粗,应继续拆。
一个可执行的任务描述应包含四段信息。以假设的搜索页为例:
这种写法把抽象目标变成了可验收的页面改动。验收信号应当是能直接观察的结果,而不是“已加强安全”这类无法判断的表述。涉及HTML标签的测试字符串,在文档中应写成转义形式,例如 <h2>,避免文档本身被解析。
页面任务往往多于可投入的时间,排序可以用两个维度:该页面是否直接处理身份、资金或敏感数据;改动是否只涉及单个页面而不牵动整体结构。前者高、后者低的页面任务优先做,因为影响面明确且容易验证。
对比依据可以这样用:登录页与“关于我们”页同样存在输入或输出问题,登录页涉及身份凭证,应排在前面;一个只在后台使用的页面与一个所有访客都能访问的页面,公开页面的暴露面更大,通常也应提前。这里的排序是通用判断,不构成对任何具体站点的风险结论,实际顺序仍需按自身页面的数据流确认。
任务拆分完成后,逐项核对以下问题,能发现多数遗漏:
如果某项答不上来,说明该任务还停留在目标层面,需要继续拆到页面。适用条件是页面数量可控、有测试环境;若站点由多个独立系统拼成,应先确认页面归属,再拆任务,否则容易出现同一页面被重复分配或无人负责。
从现有页面清单中挑出一个输入型页面和一个操作型页面,按“页面 + 现象 + 动作 + 验收”各写一条任务,在测试环境执行验收动作并记录结果。用这两条任务检验拆分粒度是否合适,再推广到其余页面。