深色模式
网络与安全
复习方式:先遮住答案口述 30~90 秒,再核对关键点;“追问与易错点”用于进一步练习。
1. HTTP 缓存如何判断?
展开答案与追问
参考答案: 先看响应是否可复用且仍新鲜,例如 Cache-Control: max-age;需要验证时可携带 If-None-Match 或 If-Modified-Since,未变化返回 304 并复用缓存实体。ETag 验证一般优先于时间验证,缓存也受 Vary 等因素影响。
追问与易错点: HTTP 缓存参考
2. no-cache 与 no-store 的区别?
展开答案与追问
参考答案: no-cache 允许存储,但复用前需要成功验证;no-store 要求缓存不要存储该响应。private 用于限制共享缓存,public 可允许共享缓存。带内容哈希的静态资源适合长缓存,入口 HTML 通常需要及时验证。
追问与易错点: no-cache 不等于完全不缓存。
3. 同源策略与 CORS 是什么?
展开答案与追问
参考答案: 同源要求协议、主机、端口相同。CORS 由服务端通过响应头授权浏览器跨源读取响应,部分请求会先 OPTIONS 预检。携带凭据时需要明确允许源并允许凭据,不能将允许源写成 *。
追问与易错点: CORS 不是服务端鉴权;某些跨源请求可被发送,只是脚本不能读取响应。
4. Cookie、localStorage、sessionStorage 如何选择?
展开答案与追问
参考答案: Cookie 可按域、路径等规则自动随请求发送,支持 HttpOnly、Secure、SameSite;localStorage 同源持久存储,sessionStorage 按源及标签页会话隔离,两者是同步 API。客户端存储都需要考虑过期、容量与敏感信息保护。
追问与易错点: HttpOnly 限制脚本读取 Cookie,但不会阻止所有 XSS 后果。
5. XSS 如何产生和防护?
展开答案与追问
参考答案: 攻击者输入被当作脚本或不可信 HTML 执行。优先使用文本插值和安全 DOM API,按输出上下文编码;确需富文本时使用可靠净化器,配合 CSP 等纵深防御。不要把不可信字符串交给 innerHTML、eval 等执行入口。
追问与易错点: CSP 和输入过滤都不能取代正确的输出处理。
6. CSRF 与 XSS 有什么区别?
展开答案与追问
参考答案: CSRF 利用浏览器自动携带身份凭据,让用户在未知情下执行请求;XSS 则是在可信页面上下文执行攻击代码。CSRF 防护包括合适的 SameSite、CSRF token、Origin 校验,并避免 GET 修改状态。
追问与易错点: SameSite 的 site 与同源的 origin 含义不同;防御措施需要配合实际登录架构。
7. HTTPS 解决什么问题?
展开答案与追问
参考答案: TLS 提供传输机密性、完整性和服务端身份认证,降低窃听与中间人篡改风险。证书验证和密钥协商建立安全通道。HTTPS 不保证业务本身无漏洞,也不阻止可信服务端返回恶意内容。
追问与易错点: 证书验证失败不能在生产中直接绕过。
8. GET/POST、幂等与常见状态码如何理解?
展开答案与追问
参考答案: GET 用于读取资源,POST 常用于提交处理,不能用 POST 天然安全或 GET 必定不安全概括。幂等指重复相同请求的预期服务端效果与一次相同。200 成功、201 创建、204 无内容、301/302 重定向、304 缓存验证、400 请求错误、401 认证、403 禁止、404 不存在、429 限流、5xx 服务端错误。
追问与易错点: 支付/创建类操作可用服务端幂等键;前端禁用按钮只能改善交互。