{ "topic": "web-security", "type": "true_false", "schema_version": "1.0.0", "generated": "2026-09-17T00:00:00+08:00", "questions": [ { "id": "tf-001", "type": "true_false", "difficulty": 1, "tags": [ "web安全", "xss" ], "question": "XSS 攻击的目标是窃取或篡改客户端(浏览器端)的数据,而不是直接攻击服务器。", "answer": true, "explanation": "正确。XSS 攻击的主要目标是在受害者的浏览器中执行恶意脚本,从而窃取 Cookie、会话令牌、篡改页面内容或进行钓鱼等操作。它是一种客户端攻击,虽然恶意脚本可能存储在服务器上(存储型),但攻击效果发生在用户浏览器端。", "source": null, "related": [] }, { "id": "tf-002", "type": "true_false", "difficulty": 1, "tags": [ "web安全", "sql注入" ], "question": "使用了 HTTPS 加密传输的 Web 应用不会受到 SQL 注入攻击。", "answer": false, "explanation": "错误。HTTPS 只负责加密客户端与服务器之间的通信传输过程,防止数据在传输中被窃听或篡改。但 SQL 注入发生在服务端应用层——恶意输入通过 HTTPS 传输后仍然会被拼接到 SQL 查询中。加密传输与应用层输入验证是两个不同层面的安全问题。", "source": null, "related": [] }, { "id": "tf-003", "type": "true_false", "difficulty": 2, "tags": [ "web安全", "csrf" ], "question": "CSRF 攻击中,攻击者需要窃取用户的 Cookie 才能完成攻击。", "answer": false, "explanation": "错误。CSRF 攻击的关键在于浏览器会在请求中自动携带目标站点的 Cookie,攻击者无需窃取或知道 Cookie 的具体内容。攻击者只需诱导用户访问恶意页面或点击恶意链接,浏览器会自动在请求中附带目标站点的有效 Cookie,从而使请求被服务器认为是合法的。", "source": null, "related": [] }, { "id": "tf-004", "type": "true_false", "difficulty": 2, "tags": [ "web安全", "ssrf" ], "question": "SSRF 漏洞只能用于访问内网资源,无法对外网发起请求。", "answer": false, "explanation": "错误。SSRF 不仅可以让服务器访问内网资源(如内网数据库、管理后台),也可以对外网发起请求。攻击者可以利用 SSRF 进行端口扫描、访问外部 API、探测云服务元数据等。SSRF 的「伪造请求」特性意味着它可以访问服务器能够触及的任何网络地址。", "source": null, "related": [] }, { "id": "tf-005", "type": "true_false", "difficulty": 1, "tags": [ "web安全", "文件上传" ], "question": "在文件上传功能中,仅将上传目录的文件执行权限禁用,就可以完全防止文件上传漏洞。", "answer": false, "explanation": "错误。禁用上传目录的执行权限是一种有效的缓解措施,但不能「完全防止」文件上传漏洞。在某些配置下(如 Nginx 的 misconfiguration、解析漏洞、或配合本地文件包含 LFI 漏洞),攻击者仍可能利用上传的文件。安全防御应采用多层策略:验证文件类型、重命名文件、限制大小、扫描恶意内容、设置正确的目录权限等。", "source": null, "related": [] }, { "id": "tf-006", "type": "true_false", "difficulty": 2, "tags": [ "web安全", "xss" ], "question": "HttpOnly 标志的 Cookie 无法被 JavaScript 的 document.cookie 读取,因此可以完全防止 XSS 攻击。", "answer": false, "explanation": "错误。HttpOnly 标志确实可以防止 JavaScript 读取 Cookie,从而保护会话令牌不被 XSS 窃取。但 XSS 的危害远不止窃取 Cookie——攻击者仍可以通过注入脚本来篡改页面内容、进行钓鱼攻击、记录键盘输入、发起 CSRF 请求等。HttpOnly 只是减轻了 XSS 的一种具体危害,而非防止 XSS 攻击本身。", "source": null, "related": [] }, { "id": "tf-007", "type": "true_false", "difficulty": 1, "tags": [ "web安全", "sql注入" ], "question": "参数化查询(Prepared Statements)通过将 SQL 结构与数据分离来防止 SQL 注入。", "answer": true, "explanation": "正确。参数化查询的核心机制是先定义 SQL 语句的结构(使用占位符),然后单独传递参数值。数据库引擎会将参数值严格作为数据处理,不会将其解释为 SQL 命令的一部分,从而从根本上杜绝了通过输入改变 SQL 语义的可能性。", "source": null, "related": [] }, { "id": "tf-008", "type": "true_false", "difficulty": 2, "tags": [ "web安全", "csrf" ], "question": "GET 请求不会受到 CSRF 攻击,只有 POST 请求才需要 CSRF 防护。", "answer": false, "explanation": "错误。GET 请求同样可能受到 CSRF 攻击。如果应用程序使用 GET 请求执行状态更改操作(如 `GET /delete?id=1`),攻击者可以通过 img 标签、链接等方式诱导浏览器发起 GET 请求。正确的做法是:所有状态更改操作应使用 POST/PUT/DELETE 等方法,并对所有修改数据的请求实施 CSRF 防护。", "source": null, "related": [] }, { "id": "tf-009", "type": "true_false", "difficulty": 2, "tags": [ "web安全", "ssrf" ], "question": "对用户输入的 URL 进行黑名单过滤(如禁止 127.0.0.1)是防御 SSRF 的最可靠方法。", "answer": false, "explanation": "错误。黑名单过滤很容易被绕过。攻击者可以使用:①十进制/十六进制/八进制 IP 表示(如 2130706433、0x7f000001);②DNS 重绑定技术;③IPv6 地址(::1);④域名指向内网地址(如 nip.io);⑤URL 编码和重定向等方式绕过。白名单 + 解析后 IP 校验才是更可靠的方案。", "source": null, "related": [] }, { "id": "tf-010", "type": "true_false", "difficulty": 1, "tags": [ "web安全", "文件上传" ], "question": "将上传的文件重命名为随机字符串(如 UUID)可以有效防止攻击者通过猜测文件名来访问上传的恶意文件。", "answer": true, "explanation": "正确。将上传文件重命名为随机且不可预测的名称(如 UUID),攻击者无法猜测文件路径来直接访问和执行上传的恶意脚本。这是文件上传安全防御的一个重要措施,但通常需要配合其他策略(如类型验证、存储位置隔离等)一起使用。", "source": null, "related": [] } ] }