更新记录(1 条,最后更新 2026年09月03日)
本文的修改记录。已保存的更新前版本,可通过带有 DOI 的永久链接阅读。
- 补回了这份节略译文遗漏的部分:关于资料时效性的 2.1 节及其对比表格、脆弱性表格的第三列、5.1 节中引用的四项发注规格、5.2 节的检查表示例表格,以及术语表一节。 查看更新前的版本 (DOI: 10.5281/zenodo.21615779)
- 首次发布
引用本文(DOI: 10.5281/zenodo.21615778)
本文保存于 Zenodo。以下同时提供始终指向最新版本的 DOI,以及固定于您正在阅读版本的 DOI。
Go Komura(2026)。《网站发包方也应该了解的内容 —— 把 IPA《安全网站构建指南》当作检查清单来使用》。小村软件有限公司。https://doi.org/10.5281/zenodo.21615778 https://comcomponent.com/zh-CN/blog/ipa-secure-website-guide/
- DOI(最新版本)
- 10.5281/zenodo.21615778
- DOI(此版本)
- 10.5281/zenodo.22279067
被问到「我们公司网站的安全性真的没问题吗?」时,能够有据可依地回答「没问题」的公司并不多。
很多人会觉得「交给制作公司负责就没问题」「我们只是个公司介绍网站,不会成为攻击目标」,但只要有一个咨询表单,就意味着有程序在处理输入内容;如果使用了 WordPress 之类的 CMS,管理后台和插件也都是攻击面。而且大多数攻击并不是针对特定公司发起的,而是通过机械化扫描寻找存在漏洞的网站。
那么,究竟应该以什么为基准来确认「没问题」呢?长期以来被作为该基准使用的官方资料,正是 IPA(独立行政法人信息处理推进机构)的《安全网站构建指南》。
本文将用网站发包方、运营方也能理解的语言,梳理这份资料究竟告诉了我们什么。
1. 先说结论
- 《安全网站构建指南》是基于实际向 IPA 举报过的漏洞、整理出网站 11 类弱点及其对策的资料。它不仅面向开发者,也可以作为发包与验收的基准来使用
- 对策分为「根本性解决」(消除原因)与「辅助性对策」(减轻损害)两类。以根本性解决为基础,辅助性对策是在此之上的补充
- 配套的《安全实施检查清单》可以直接作为向制作公司发包、验收时的确认项目来使用
- 附册《网站健康诊断规格》可作为对运营中网站进行定期检查时诊断项目的基准
- 在公司网站的实务中,表单等接受输入的部分,以及 CMS(如 WordPress)的运维,是两大主要风险来源。应在发包阶段就确定好不「做完即止」的持续运维体制
2. 什么是《安全网站构建指南》
《安全网站构建指南》是 IPA 从收到的漏洞相关举报信息中,挑选出举报数量较多、或一旦遭受攻击影响较大的漏洞,面向网站开发者与运营者整理对策的资料。目前公开的最新版本是修订第 7 版,全书共 115 页。当前分发的 PDF,是 2021 年 3 月 31 日作为第 4 次印刷更新的版本。除 PDF 之外,还针对各个漏洞发布了相应的 HTML 页面。
全书由三章构成。
| 章节 | 内容 |
|---|---|
| 第 1 章 Web 应用程序的安全实施 | 针对 11 类漏洞,解说其威胁与对策(根本性解决・辅助性对策) |
| 第 2 章 提升网站安全性的举措 | 服务器运维等应用程序实现之外、用于提升网站整体安全性的举措 |
| 第 3 章 失败案例 | 解说实务中常见的 8 类失败案例,并附有源代码与修正示例 |
除正文外,还另外公开了以下资料。
- 安全实施检查清单(Excel 格式):用于确认是否已实施正文对策的一览表
- 附册《安全调用 SQL 的方法》:深入探讨数据库相关漏洞对策的资料
- 附册《网站健康诊断规格》:整理了用于诊断运营中网站的 13 项诊断内容的规格
以上资料均可从 IPA 官网 免费下载。
2.1 如何看待这份资料的时效性
在把这份资料当作基准使用之前,有一个前提需要先了解。修订第 7 版公开于 2015 年 3 月,此后每次加印都会加入修正,目前分发的 PDF 是 2021 年 3 月 31 日更新的第 7 版第 4 次印刷本。截至本文撰写时(2026 年 7 月),第 8 版尚未公开。
即便如此仍然可以把它当作基准,是因为这份资料所讨论的,是源自 Web 应用程序构建方式本身的弱点。把输入值嵌入 SQL 语句或 HTML、用会话来识别本人、根据表单输入发送邮件,这些机制至今没有改变。11 类漏洞以及「根本性解决/辅助性对策」这一思路,如今依然可以作为实现层面的确认基准。
反过来说,近年来威胁态势的变化,这份资料是覆盖不了的。勒索攻击、经由交易伙伴或委托方的入侵、伴随生成式 AI 使用而产生的风险,这类话题本来就不在这份资料的职责范围之内。这部分要靠每年更新的资料来补足。
| 资料 | 负责的范围 | 更新方式 |
|---|---|---|
| 安全网站构建指南 | 在 Web 应用程序的实现中要做到哪些事 | 修订第 7 版为 2015 年,第 4 次印刷为 2021 年。此后没有改版 |
| 信息安全10大威胁 | 当下实际正在发生哪些攻击的动向 | 每年公布 |
| 中小企业信息安全对策指南 | 作为公司整体的体制与运营该如何构建 | 每次改版时更新(最新为第 4.0 版) |
这三份并不需要分别通读。只要按「实现的基准看这份资料,威胁的最新动向看10大威胁,公司的体制看指南」这样分好各自的角色,需要时再去看对应的那一份就足够了。10大威胁 2026 年版的具体内容,在《信息安全10大威胁2026》解读一文中介绍;指南第 4.0 版则在《指南第 4.0 版解读》一文中讨论。
3. 从「会发生什么」的角度解读 11 种漏洞
第 1 章列出的 11 类漏洞,是以面向开发者的术语呈现的,但如果换成「放任不管的话,自家网站会发生什么」这个角度来看,发包方也会意识到这绝非事不关己。
最右侧一列,是这个漏洞在公司网站上容易出问题的位置示例。对照自家网站有没有同样的功能,就能分辨出哪一行与自己有关。
| 漏洞 | 放任不管会发生什么 | 自家网站上容易对应的位置 |
|---|---|---|
| SQL 注入 | 咨询记录、会员信息等数据库内容被窃取或篡改 | 咨询与资料索取表单的保存处理、站内搜索、会员信息检索、CMS 的文章管理 |
| OS 命令注入 | 服务器被劫持,沦为攻击跳板 | 图片缩放、PDF 生成、ZIP 压缩与解压等调用外部程序的处理 |
| 路径参数未校验(目录穿越) | 服务器上原本不打算公开的文件被读取 | 资料下载功能、面向会员的文件分发,以及用 URL 参数接收文件名的页面 |
| 会话管理缺陷 | 他人可以冒充本人登录 | 会员登录、CMS 与电商的管理后台、登录后的个人页面 |
| 跨站脚本(XSS) | 在访问者的浏览器中运行伪造画面或恶意脚本,导致信息被窃取 | 表单的输入确认页、站内搜索的结果显示、评价与留言栏等把输入内容输出到页面上的位置 |
| CSRF(跨站请求伪造) | 已登录用户在不知情的情况下被诱导执行非本意的操作 | 修改会员注册信息、注销、确认下单等登录后改变状态的操作 |
| HTTP 头注入 | 被滥用于显示伪造页面或将用户引导至其他网站 | 登录后的返回地址 URL 等,根据参数值拼装重定向目标或 Cookie 的处理 |
| 邮件头注入 | 咨询表单被滥用为垃圾邮件的发送装置 | 咨询表单的自动回复与内部通知邮件。尤其是在发件人或主题中使用了输入值的情况 |
| 点击劫持 | 不可见的按钮被叠加在页面上,诱导用户进行非本意的点击 | 注销、修改设置、确认下单等点击一次即告确定的重要操作页面 |
| 缓冲区溢出 | 程序被劫持,可被用于执行任意处理 | 用 C/C++ 编写的自研程序或老旧中间件。在用 PHP、Java、Ruby 等构建的一般网站上通常不易成为问题 |
| 访问控制或授权控制缺失 | 无权限人员也能进入会员页面或管理功能 | 会员专用页面、管理后台,以及改写 URL 中的 ID 就能看到他人数据的详情页面 |
例如「邮件头注入」,公司介绍网站的咨询表单就直接与之对应。防护不到位的表单会被滥用为垃圾邮件的发信源,甚至损害公司域名本身的信誉(邮件能否正常送达对方)。正如《咨询表单邮件无法送达的原因》一文所述,表单邮件无法送达的问题会直接导致业务机会的损失。
4. 「根本性解决」与「辅助性对策」——对策的基本思路
这份资料的优秀之处在于,将对策分为两类来呈现。
- 根本性解决:消除漏洞根本原因的实现方式。例如对于 SQL 注入,就是在拼装 SQL 语句时使用占位符,而不是字符串拼接
- 辅助性对策:在漏洞仍然存在的情况下,用于降低攻击成功率或损害程度的对策。例如不将错误消息原样显示在浏览器上
这一分类,可以成为发包方在听取安全性说明时的一把标尺。「我们会引入 WAF(检测并拦截攻击的机制),所以可以放心」这类说明,谈的是辅助性对策,并不能替代应用程序本身的根本性解决。反过来,在实施根本性解决的基础上再叠加 WAF,则是合理的架构。只要能分辨对方谈论的是哪一层面的内容,就能大致看清提案是否妥当。
5. 如何在发包与验收中使用
《安全网站构建指南》虽是面向开发者的资料,但对发包方而言,其实用价值在于可以将其用作提出要求与进行确认的基准。
- 报价・需求阶段:在规格书或 RFP 中加入一句「须实施 IPA《安全网站构建指南》所列漏洞的相应对策」。明确指出所依据的基准,比「充分考虑安全性」这类模糊表述更能让要求变得清晰
- 验收阶段:要求对方就安全实施检查清单中的相应项目提交确认结果
- 签约阶段:以书面形式明确上线后由谁负责更新 CMS、插件与服务器,以及一旦发现漏洞时的应对是否属于维保合同范围,还是需要另行报价
第三点尤其重要。网站的安全性并非在建成的那一刻就宣告完成,而是要靠持续跟进上线后新发现的漏洞来维持。这个「由谁来持续负责」的问题,与《受托开发与运维保守合同》一文中梳理的维保范围问题,属于同一种结构。
5.1 写进规格书与 RFP 的示例文字
只写「须充分考虑安全性」,无法确定要做到什么程度才算满足了要求。而一旦指定资料名称与交付物,要求就变成了可以验证的形式。例如可以这样写。
安全需求
- 本项目的 Web 应用程序,须针对 IPA《安全网站构建指南 修订第 7 版》第 1 章列出的各项漏洞,实施该资料中归类为「根本性解决」的对策。
- 交付时,须就该资料配套的《安全实施检查清单》的全部项目提交自查结果。对于判断为「无需处理」的项目,须一并写明理由(如不具备相应功能等)。
- 对于涉及动态处理的页面(咨询表单、搜索、登录、文件下载等),须在设计文档中记载输入值的处理方式与输出时的转义处理方针。
- 须在维保合同中写明:上线后由谁、以何种频率更新 CMS 本体、主题、插件与运行环境;以及公布紧急漏洞时的响应时限与费用如何处理。
这四项不必一开始就全部写进去。如果是以公司介绍为主的网站,哪怕只写第 1 项和第 2 项,验收时的对话也会与「安全性就交给你们了」这样发包完全不同。
5.2 检查清单的内容
检查清单是一个 Excel 文件,其中按 11 类漏洞排列着与《安全网站构建指南 修订第 7 版》第 1 章相对应的 47 个实施项目。每一行由漏洞的类别、对策的性质(根本性解决/辅助性对策)、勾选栏(已处理/未处理/无需处理)、实施项目的文字,以及正文的解说编号构成。
实际的项目,是用类似下面这样的文字写成的。
| 漏洞 | 对策的性质 | 实施项目 | 解说 |
|---|---|---|---|
| SQL 注入 | 根本性解决 | SQL 语句的拼装全部用占位符来实现。 | 1-(i)-a |
| SQL 注入 | 辅助性对策 | 不将错误消息原样显示在浏览器上。 | 1-(iii) |
| 邮件头注入 | 根本性解决 | 将邮件头设为固定值,来自外部的输入全部输出到邮件正文中。 | 8-(i)-a |
(实施项目的文字引自 IPA《安全网站构建指南 修订第 7 版》配套的安全实施检查清单)
对发包方来说好用的一点,是勾选栏里有「无需处理」这一项。没有登录功能的网站,会话管理的项目留空是正常的,但如果没有填写,就无法区分它究竟是「不适用所以无需处理」还是「疏漏」。只要让对方带上理由写下「无需处理」,验收时的对话就会具体起来。
6. 对运营中的网站进行「健康诊断」
对于已经上线的网站,附册《网站健康诊断规格》会很有帮助。这是一份针对运营中网站进行安全性检查的诊断项目规格(共 13 项),也可以作为使用漏洞诊断服务时判断服务内容是否到位的参考标准。
在中小企业的公司网站中,实务上风险尤其容易集中在以下两处。
- 接受输入的部分:咨询表单、搜索框、会员登录等。第 1 章中的大多数漏洞都与此相关
- CMS 的运维:本体、主题、插件更新已经停滞的 WordPress 等网站,是被人利用已知弱点进行篡改的典型模式。更新究竟是谁的工作职责一直未定、被就此放置不管的情况非常多见
如果想连同运维体制一起重新审视 CMS 的更新负担,《从 WordPress 迁移》一文也可供参考。此外,还有一种设计思路是从一开始就减少动态处理、采用静态网站架构,从而缩小攻击面本身。本公司在网站制作中采用的以数字厅设计系统为基础的静态架构,正是这一思路的延伸。
另外,网站的安全运营,在 IPA《中小企业信息安全对策指南》第 4.0 版的自查项目中也有所提及。关于它在公司整体安全对策中的定位,请参阅《指南第 4.0 版解读》一文。
7. 术语小词典
这里汇总了与制作公司开会时会听到、并且本文用到的词。只要能用一句话说出它们的含义,在听取说明时就能自己判断「这说的是根本性解决,还是辅助性对策」。
| 术语 | 含义 |
|---|---|
| 漏洞 | 源自程序编写方式的弱点,且能被攻击所利用。属于缺陷中会影响安全性的那一类 |
| 根本性解决 | 消除漏洞根本原因本身的实现方式。这是 IPA 资料中的分类,对策的基础在于此 |
| 辅助性对策 | 在根本原因仍然残留的情况下,降低攻击成功率与损害程度的对策。无法替代根本性解决 |
| 占位符 | 先用符号在 SQL 语句中占好放置值的位置,值随后再交给数据库一侧的写法。由于不靠拼接字符串来组装 SQL 语句,输入的字符不会被当作 SQL 语句的一部分来解释 |
| 转义处理 | 把在 HTML 中具有特殊含义的字符(< > & “ 等)替换成会按原字符显示的写法再输出。这是 XSS 对策的基础 |
| WAF | Web Application Firewall。监视发往网站的通信、拦截被判定为攻击的内容的机制。定位上属于辅助性对策 |
| CMS | Content Management System。让文章和图片可以从浏览器更新的机制,如 WordPress 等。本体、主题、插件的更新是运维的关键 |
| 漏洞诊断 | 针对运营中的网站检查有没有弱点。IPA 附册《网站健康诊断规格》的 13 个项目,可作为委托内容的参考标准 |
总结
整理一下 IPA《安全网站构建指南》的要点。
- 基于实际向 IPA 举报过的漏洞,整理出网站 11 类弱点及其对策的经典资料(修订第 7 版・全书 115 页)
- 对策分为根本性解决与辅助性对策两个层次。WAF 等辅助性对策无法替代根本性解决
- 发包方可以采用以下用法:在需求中明确写出资料名称,用检查清单进行验收,并通过合同确定上线后的更新体制
- 对运营中的网站,可以《网站健康诊断规格》为基准进行定期检查
- 公司网站现实中的风险,容易集中在表单等输入处理以及 CMS 放任不管这两方面
安全性问题往往容易变成「完全按专家说的花钱」或「什么都不做」这样的二选一,但只要了解了官方基准,就能够用自己的语言来提出要求、进行确认。
致正在考虑网站制作与改版的您
合同会社小村软件(合同会社小村ソフト)在承接网站制作与改版项目时,会遵循本文介绍的思路,从表单相关实现、不过度依赖 CMS 的静态架构,到上线后的更新体制,提供全方位的方案建议。即便您还处于「不清楚现有网站究竟是什么状态」这个阶段,也欢迎从现状确认开始咨询。
相关文章
共享相同标签的最新文章。可以围绕相近的主题进一步加深理解。
信息处理安全保障支援士(情報処理安全確保支援士) 2024年春季(令和6年) 午后问1解说 ── JWT的alg=none与API授权、WAF的临时应对
以信息处理安全保障支援士考试2024年春季(令和6年)午后问1为题材,解说JWT的alg=none、API授权、Mass Assignment(批量赋值)、4位认证码的暴力破解,以及WAF的临时应对措施。
信息处理安全保障支援士(情報処理安全確保支援士) 2023年秋季(令和5年)午后问1解说 ── 明明有16条评论,却只显示2条的存储型XSS
以信息处理安全保障支援士考试2023年秋季(令和5年)午后问1为素材,解说存储型XSS的攻击流程。整理输入字数限制被分段投稿突破的原因、会话ID在不经外部通信的情况下以图片形式被窃取的路径,以及真正起作用的应对措施。
信息安全10大威胁2026——排行榜的正确打开方式,与中小企业真正应该防范的威胁
在IPA《信息安全10大威胁2026》中,勒索攻击连续11年蝉联第1位,供应链攻击位居第2位,首次入选的“围绕AI利用的网络风险”跃居第3位。本文解读组织篇TOP10的内容,并说明中小企业应把哪些威胁当作自身问题来加以应对。
中小企业的安全对策,该从何入手 ── IPA《中小企业信息安全对策指南》第4.0版导读
中小企业的安全对策应该从何入手?本文基于 IPA《中小企业信息安全对策指南》第4.0版,从信息安全六条准则、5分钟自我诊断,到 SECURITY ACTION,进行分阶段讲解。
信息处理安全保障支援士(情報処理安全確保支援士) 2023年秋季(令和5年) 下午问2解说 ── 从来宾用Wi-Fi带出的文件
以信息处理安全保障支援士考试2023年秋季(令和5年)下午问2为题材,解说堵住了USB闪存的公司如何被人从来宾用Wi-Fi带出文件的路径。梳理服务器证书验证与HSTS、MAC地址过滤的局限性,以及EAP-TLS和TPM带来的应对方法。
相关主题
与本文相近的主题页面。以本文为起点,可以进一步了解相关服务和其他文章。
Windows 技术主题
汇整 KomuraSoft LLC 关于 Windows 开发、故障调查与既有资产活用文章的主题中心。
Web 开发 & SEO 主题
汇整网站制作、SEO、咨询动线、内部链接设计的主题中心。
与本主题相关的服务
本文与以下服务页面相关联,欢迎从最接近的入口查看。
网站制作
在网站的新建或改版项目中,表单相关实现、CMS 架构等本文所探讨的安全性考量,会直接影响到制作质量。
技术咨询 & 设计评审
梳理现有网站或 Web 系统中的风险所在,以及如何在发包规格中写明安全需求,属于伴随设计评审的技术咨询范畴。
常见问题
汇总了咨询这一主题时常见的问题。
- 《安全网站构建指南》是一份怎样的资料?
- 这是 IPA(独立行政法人信息处理推进机构)公开发布的一份面向网站开发者与运营者的安全资料。它从 IPA 收到的漏洞相关举报信息中,挑选出举报数量较多或影响较大的漏洞,解说其威胁与对策。最新的修订第 7 版于 2021 年 3 月发布,全书共 115 页。除正文外,还免费公开了安全实施检查清单,以及附册《安全调用 SQL 的方法》《网站健康诊断规格》。
- 即使只是公司介绍程度的网站,也需要安全对策吗?
- 需要。只要有咨询表单,就意味着有程序在处理输入内容;如果使用了 WordPress 等 CMS,管理后台和插件也会成为攻击目标。攻击者未必会根据公司规模挑选目标,而是机械化地寻找存在漏洞的网站,将其滥用为篡改、传播病毒的跳板,或垃圾邮件的发送源。网站可怕的地方就在于,你在成为受害者的同时,也可能变成对交易伙伴和访问者施害的一方。
- 根本性解决与辅助性对策有什么区别?
- 《安全网站构建指南》将对策分为两类来呈现。根本性解决,是指消除漏洞根本原因本身的实现方法(例如:在拼装 SQL 语句时使用占位符)。辅助性对策,是指在漏洞仍然存在的情况下,用于降低攻击成功率或损害程度的对策(例如:不将错误消息原样显示出来)。仅靠辅助性对策会让根本原因依然存在,因此正确的顺序是以根本性解决为基础,再叠加辅助性对策。
- 向制作公司发包时,关于安全性应该确认哪些内容?
- 建议至少在报价阶段确认以下三点:①是否实施了《安全网站构建指南》所列漏洞的相应对策;②能否通过配套的安全实施检查清单等方式出示确认结果;③上线后由谁负责更新 CMS 与插件(是否属于运维保守合同的范围)。安全需求如果事后追加,会造成较大的返工,因此在签约前以书面形式加以确认非常重要。