CWE 弱点预防

共 18 题
#

1. CWE Top 25 Most Dangerous Software Weaknesses 的年度更新

A 它是国际标准化组织强制执行的法规
B 它是 MITRE 基于 NVD 的 CVE 数据,按频率与严重性加权选出的最危险 25 类弱点,每年更新 ✓ 正确答案
C 它只统计 XSS 一种攻击类型
D 它列举的是具体的软件产品漏洞而非弱点
#

2. CWE-20(Improper Input Validation)的预防中 whitelist validation

A 在信任边界处用白名单验证输入,并先规范化再校验,是预防输入验证不当的核心 ✓ 正确答案
B 应使用黑名单穷举所有非法输入
C 输入校验与输出编码完全等价
D 只需在前端校验即可
#

3. CWE-22(Path Traversal)的预防中 path canonicalization

A 只要过滤掉 `../` 就绝对安全
B URL 编码不会绕过路径遍历过滤
C 路径遍历只能读取文件,无法写入
D 应将用户输入解析为规范绝对路径,并校验其仍位于允许目录之下,再执行访问 ✓ 正确答案
#

4. CWE-352(CSRF)的预防中 SameSite cookie、CSRF token

A 设置 cookie 为 HttpOnly 即可防御 CSRF
B CSRF 只能通过前端 JavaScript 防御
C SameSite cookie 限制跨站请求携带 cookie,CSRF token 让服务端校验请求令牌,二者互补 ✓ 正确答案
D 使用 HTTPS 就能完全防御 CSRF
#

5. CWE-79(Cross-site Scripting)的预防中 context-aware escaping

A 只需在服务端过滤用户输入即可预防 XSS
B 使用 `v-html` 会自动完成安全转义
C 核心是输出端按上下文感知转义,并配合框架默认转义、CSP、HttpOnly 等纵深防御 ✓ 正确答案
D 设置 cookie 为 Secure 即可防御 XSS
#

6. CWE-89(SQL Injection)的预防中 parameterized queries

A 用参数化查询/预编译语句把数据与 SQL 语法分离,是首选且无绕过空间的防御 ✓ 正确答案
B 过滤引号即可完全预防 SQL 注入
C 使用 ORM 后任何写法都安全
D 参数化查询无法防止任何注入
#

7. CWE(Common Weakness Enumeration)的"视图"(View)中按语言、按领域

A View 是从特定视角(语言、领域、生命周期)选取的一组 CWE 条目,便于按维度检索 ✓ 正确答案
B View 是 CWE 中唯一的编号体系
C 每个 CWE 只能属于一个 View
D View 与 CWE 是完全不同的两种标准
#

8. CWE-434(Unrestricted File Upload)的预防中 MIME、内容嗅探

A 只校验扩展名即可防御文件上传漏洞
B 应结合扩展名白名单、MIME 与内容校验、上传到非可执行目录并禁止执行权限,配合 nosniff 防内容嗅探 ✓ 正确答案
C MIME 类型是可信的,可放心依据它判断
D 上传文件无需限制大小
#

9. CWE-502(Deserialization of Untrusted Data)的预防

A 反序列化是安全的,无需担心
B 反序列化无法触发代码执行
C 只要数据来自 HTTPS 就安全
D 应避免反序列化不可信数据,必须时用签名校验、类白名单和更安全的格式(如 JSON)来缓解 ✓ 正确答案
#

10. CWE-601(Open Redirect)的预防中白名单 redirect

A 重定向目标应完全由用户输入决定
B 只需在重定向时使用 HTTPS 即可防御
C 开放重定向没有安全风险
D 使用白名单限定可重定向的目标地址,并拒绝协议相对地址和危险协议,是预防开放重定向的核心 ✓ 正确答案
#

11. CWE-611(XXE)的预防中禁用外部实体

A 只要过滤 XML 中的 `<!ENTITY` 字符串就能防御 XXE
B XXE 只能读取文件,无法发起 SSRF
C 在解析器配置中禁用外部实体、外部参数实体和 DTD 处理,是预防 XXE 的核心 ✓ 正确答案
D 所有 XML 解析器默认都是安全的
#

12. CWE-78(OS Command Injection)的预防中避免 shell

A 过滤分号即可完全防止命令注入
B `Runtime.exec` 字符串形式是安全的
C 命令注入只能发生在 Windows 上
D 用参数数组形式调用进程 API(不经 shell 解释)是防止命令注入的关键 ✓ 正确答案
#

13. CWE 的分类中常见弱点(CWE Top 25)?

A CVE 是弱点类型,CWE 是具体漏洞编号
B CWE 只有一种分类方式
C CWE Top 25 是强制执行的法规
D CWE Top 25 是基于 CVE 数据统计的弱点排名视图,用于指导优先修复,与 CVE、OWASP 是不同层面 ✓ 正确答案
#

14. CWE-798(Hard-coded Credentials)的预防中密钥管理

A 应把凭证从代码中剥离,用环境变量或密钥管理服务(KMS/Vault)集中存储、按需注入并支持轮换与审计 ✓ 正确答案
B 只要把凭证放在代码里但不提交到公开仓库就安全
C 硬编码凭证没有泄露风险
D 使用环境变量即可完全替代密钥管理
#

15. CWE-918(Server-Side Request Forgery, SSRF)的预防

A 对用户可控 URL 做白名单校验,并阻止内网、回环和云元数据地址,兼顾 DNS 重绑定,是防御 SSRF 的核心 ✓ 正确答案
B SSRF 只影响客户端,服务端无风险
C 只要用 HTTPS 请求就能防御 SSRF
D 用户可控的 URL 是可信的
#

16. 缓冲区溢出与内存安全中语言与工具?

A 缓冲区溢出只出现在 Java 中
B 内存不安全语言无法用任何工具缓解
C 开启 ASLR 就能完全消除缓冲区溢出
D 选用内存安全语言(如 Rust)并配合编译期防护与内存检测工具(ASan/fuzzing),可显著缓解内存安全问题 ✓ 正确答案
#

17. 逻辑漏洞中越权、竞态与错误处理?

A 逻辑漏洞一般无法通过代码修复
B 错误信息泄露内部细节是安全的
C 越权需在每次访问时做对象级授权检查,竞态需用原子操作/锁/事务保证检查与使用一致,错误处理需对外返回通用信息 ✓ 正确答案
D 逻辑漏洞只与前端有关
#

18. 弱点预防的流程中威胁建模到验证?

A 弱点预防只需在测试阶段做一次渗透测试
B 静态分析可以发现所有漏洞,无需人工
C 应从威胁建模、安全设计、编码规范、SAST/DAST/SCA 扫描、人工评审到上线监控形成闭环,并强调安全左移 ✓ 正确答案
D 威胁建模只适用于大型系统