CSRF、Cookie、同源策略与 CORS
Web 安全与XSS、CSRF、SQL 注入与权限安全#Python全栈#第十八阶段#Web 安全与XSS、CSRF、SQL 注入与权限安全#CSRF、Cookie、同源策略与 CORS约 974 字 · 3 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
CSRF 的成立条件是什么,与 XSS 的执行位置有什么不同?
追问 为什么浏览器自动携带凭据会影响风险?用户不读取攻击页面的响应,状态改变仍可能怎样发生?
为什么修改状态的业务不应依赖 GET 请求完成?
追问 链接访问、预加载与跨站请求可能产生什么副作用?改成 POST 后是否就不再需要 CSRF 防护,方法与身份凭据应怎样一起分析?
CSRF Token 应怎样产生、传递与校验?
追问 服务器如何确认 Token 与当前会话有关?缺失、错误和过期值怎样拒绝,为什么不能把 Token 放入容易被记录的 URL?
同步 Token 与双重提交 Cookie 方案有什么区别?
追问 有服务端会话与无会话方案各怎样设计?签名及会话绑定如何避免只比较两个可被注入的值,能否直接使用框架支持?
SameSite 的 Strict、Lax 和 None 怎样影响 Cookie 携带?
追问 顶层导航、跨站子请求和 Secure 要求怎样核对?为什么应明确配置与浏览器行为,而不能把默认值当作完整 CSRF 防护?
“同源”与“同站”有什么区别?
追问 协议、端口和子域变化分别怎样影响 Origin 与 SameSite 判断?为什么同站子域上的风险可能影响仅依赖 SameSite 的方案?
服务端校验 Origin 或 Referer 时,需要注意什么?
追问 来源允许列表怎样比较,为什么不能用随意的子串匹配?头部缺失、代理后的目标来源和特殊来源怎样制定明确处理规则?
CORS 允许什么,为什么不能把它当作认证或 CSRF 的替代品?
追问 浏览器是否会让所有跨域请求都先预检?请求已经改变状态但响应不可读时,怎样判断风险与防护是否有效?
带凭据的跨域接口应该怎样配置来源、Cookie 与响应头?
追问 Access-Control-Allow-Origin 与 Allow-Credentials 如何配合?为什么任意反射来源很危险,按来源变化的响应缓存需要考虑什么?
JSON API、Bearer Token 与 WebSocket 应怎样分别分析 CSRF 风险?
追问 脚本主动设置请求头与 Cookie 自动携带有何区别?Content-Type、登录接口与 Cookie 回退路径怎样检查,WebSocket 为什么还需验证 Origin 和业务权限?
CSRF 与跨域核对资料: OWASP:Cross-Site Request Forgery Prevention、Fetch 标准:CORS。