# 1. SQL 注入的成因与危害是什么,为什么参数化查询/预编译语句能从根上防御而字符串拼接不能? A 参数化查询通过过滤输入中的特殊字符来防止注入 B 预编译语句在绑定参数前已固定 SQL 结构,参数按数据而非语法处理 ✓ 正确答案 C 字符串拼接只要转义单引号就能彻底防御 SQL 注入 D 只有存储过程才能防止 SQL 注入
# 2. XSS 的存储型、反射型、DOM 型三类有何差异,输出编码、CSP 与 HttpOnly 分别防御哪一类? A 输出编码能防御存储型与反射型 XSS,HttpOnly 专门防止 XSS 窃取会话 Cookie ✓ 正确答案 B CSP 只能防御存储型 XSS C DOM 型 XSS 需要经过服务器才能触发 D HttpOnly 能让所有 XSS 失效
# 3. CSRF 攻击的利用条件是什么,CSRF Token、SameSite Cookie、双重提交 Cookie 三种防御的机制与局限? A CSRF 需要攻击者拿到受害者的 Cookie 值 B CSRF Token 需要持久化存储在浏览器本地 C SameSite Cookie 由浏览器强制跨站请求的 Cookie 携带策略,可缓解大部分 CSRF ✓ 正确答案 D 双重提交 Cookie 完全无法被绕过
# 4. SSRF 攻击为什么危险,服务端如何被利用访问内网,URL 白名单、DNS 重绑定防护与出网限制如何落地? A SSRF 只能攻击外网,无法触及内网 B DNS 重绑定攻击通过在解析校验与连接之间切换 IP 绕过校验 ✓ 正确答案 C URL 白名单校验发生在连接之后即可彻底防御 D 出网限制无法阻止 SSRF 访问内网
# 5. 越权(IDOR/BOLA)为何属于"失效的访问控制",水平越权与垂直越权的区别,最小权限如何系统化落地? A 对象级授权校验是把"当前用户是否有权访问该对象"作为服务端强制检查 ✓ 正确答案 B 水平越权是低权限用户使用高权限功能 C IDOR 只改动前端界面即可防御 D 最小权限原则无法在对象粒度落地
# 6. 为什么 HTTPS 无法防御 XSS/CSRF,TLS 保护传输机密性,应用层信任边界问题如何仍然存在? A 部署 HTTPS 后所有 Web 安全漏洞自动消失 B TLS 只保护传输层的机密性与完整性,XSS/CSRF 是应用层信任边界问题 ✓ 正确答案 C XSS 攻击发生在 TLS 解密之前 D CSRF 由传输层加密导致
# 7. 文件上传漏洞有哪些绕过方式(扩展名、MIME、内容头、双扩展名),白名单校验加存储隔离如何防御? A 只校验扩展名黑名单即可防止文件上传攻击 B 双扩展名利用解析器对多扩展名的处理特性触发代码执行 ✓ 正确答案 C 伪造 MIME 类型只影响服务器端 D 存储到 Web 可执行目录是安全的做法
# 8. 命令注入与代码注入(RCE)的利用与防御差异,白名单命令、参数化与最小权限如何组合使用? A 命令注入与代码注入都注入到 shell 解释器 B 参数化执行与入口白名单消除注入点,最小权限限制注入后的危害 ✓ 正确答案 C 最小权限能够阻止注入本身发生 D 命令注入只能通过过滤特殊字符防御
# 9. 反序列化漏洞为何可导致远程代码执行,Java/Python 的常见攻击面与"不反序列化不可信数据"原则? A Python pickle 的 __reduce__ 可指定任意可调用对象实现代码执行 ✓ 正确答案 B 反序列化只影响数据,不会执行代码 C 加解密反序列化数据与安全无关 D 反序列化漏洞只存在于 Java
# 10. 开放重定向与点击劫持(Clickjacking)的利用方式,X-Frame-Options/CSP frame-ancestors 如何防御? A X-Frame-Options 用于禁用页面所有脚本 B 点击劫持需要借助服务端代码执行 C 开放重定向只需要客户端校验 D CSP frame-ancestors 限制当前页面可被哪些来源嵌入 iframe ✓ 正确答案
# 11. 会话固定攻击的原理,为什么登录后应更换会话 ID,Session 与 Cookie 属性如何配合加固? A 会话固定攻击前提是攻击者窃取受害者的 Cookie B 会话固定攻击不需要受害者登录 C HttpOnly 属性专门防会话固定 D 登录成功后更换会话 ID 让攻击者预置的 ID 失效 ✓ 正确答案
# 12. 安全响应头(CSP、HSTS、X-Content-Type-Options、Referrer-Policy)各自防护什么风险? A HSTS 用于防止浏览器执行内联脚本 B Referrer-Policy 控制 Cookie 的携带 C CSP 强制浏览器使用 HTTPS D X-Content-Type-Options: nosniff 禁止浏览器对响应做 MIME 嗅探 ✓ 正确答案
# 13. 目录穿越(Path Traversal)漏洞如何读取任意文件,为什么必须对路径做规范化后再校验? A 直接对原始路径字符串做前缀校验即可防御目录穿越 B 规范化后再校验能消除 ../、编码与符号链接造成的路径差异 ✓ 正确答案 C 目录穿越只能读取文件,不影响系统 D URL 编码无法绕过路径校验
# 14. 为什么客户端校验不可信,前端校验、服务端校验与数据库约束三层各防御什么,纵深防御如何组织? A 前端校验通过即可信任用户输入 B 数据库约束可以替代服务端校验 C 服务端校验是真正的安全边界,前端校验仅用于体验优化 ✓ 正确答案 D 纵深防御只需在某一层实现即可
# 15. 业务逻辑漏洞,越权批量操作、优惠重放、验证码绕过等逻辑缺陷为何难以被自动化扫描发现,测试与审计如何覆盖? A 业务逻辑漏洞可以通过自动化扫描工具稳定发现 B 优惠重放是指攻击者注入 SQL C 业务逻辑漏洞依赖业务语义,难以被通用签名扫描识别 ✓ 正确答案 D 逻辑漏洞与业务规则无关
# 16. 信息泄露与错误处理,调试信息、堆栈、版本号与敏感字段在响应中泄露的路径,统一错误响应与日志分级如何落地? A 生产环境应保持 debug 模式便于排障 B 版本号泄露对安全没有影响 C 日志中记录明文密码是正常的 D 统一错误响应对外只返回通用信息,避免泄露堆栈与版本 ✓ 正确答案
# 17. 认证与会话管理的组合,登录限流、验证码、密码策略与会话失效如何组合,防止暴力破解与会话劫持? A 会话劫持与 Cookie 属性无关 B 密码明文存储配合强策略即可保证安全 C 会话 ID 无需在登录后更换 D 登录限流与验证码主要用于拖慢暴力的自动化攻击 ✓ 正确答案
# 18. 重放攻击与幂等,支付、下单等敏感操作如何用 nonce/时间戳/一次性令牌防重放,与接口幂等设计的关系如何? A nonce 的作用是让服务端拒绝重复使用过的请求 ✓ 正确答案 B 幂等设计会使重复请求产生副作用 C 时间戳防重放与窗口无关 D 重放攻击就是 SQL 注入
# 19. 身份认证的常见薄弱点,弱口令、凭证复用、暴力破解与撞库,多因素认证(MFA)为何是底线措施? A 撞库是暴力破解的一种,与你密码是否强度高无关 B MFA 即使口令泄露,攻击者仍缺少第二因子无法认证 ✓ 正确答案 C 弱口令只要加长就彻底安全 D 凭证复用不会导致跨站风险