支付接口只允许同源读取,为何攻击页面仍可能完成扣款?
简答题中等350 次浏览
参考答案与解析
核心结论
只限制跨源读取不能阻止跨站请求被发送。若浏览器会自动携带用户的身份凭证,而服务端仅凭该凭证执行状态变更,攻击页面就可能诱导浏览器完成扣款,这就是CSRF的典型条件。防护应以不可由攻击站点获得的请求证明为核心,结合SameSite、来源校验、正确的请求语义和高风险操作再认证,而不是依赖隐藏按钮、跨域读取失败或自定义前端页面。
底层机制
同源策略主要约束脚本读取其他源的响应,但表单、图片、导航等跨站请求长期被浏览器允许。会话Cookie是否随请求发送,由域、路径、Secure和SameSite等属性决定,不取决于攻击者能否读取它。HttpOnly阻止脚本读取Cookie,却不会
