尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

【Python Web开发】CSRF攻击与防护

【Python Web开发】CSRF攻击与防护 用户已经登录站点后,另一个网页为何可能让浏览器带着登录 Cookie 提交转账请求,而用户没有在站点页面点击确认?读完后,你能检查状态修改接口是否验证令牌,查看会话 Cookie 的 SameSite 属性,并用网络面板确认拒绝响应。文章目录登录 Cookie 自动附带的状态修改请求核心概念与工作机制最小示例验证结果常见误区与适用边界总结登录 Cookie 自动附带的状态修改请求设想站点提供“提交转账”接口,用户先前已经登录,因此浏览器保存了会话 Cookie。浏览器在向该站点发出符合 Cookie 策略的请求时,会自动附带该 Cookie;攻击者不必知道 Cookie 的具体值。下面的 HTTP 交互可在浏览器开发者工具的“网络”面板中观察到。若请求来自正常表单,页面会同时提交服务器生成的csrf字段;若该字段缺失,服务器应拒绝请求。POST /transfer HTTP/1.1 Host: 127.0.0.1:8000 Cookie: sid=已登录会话标识 Content-Type: application/x-www-form-urlencoded amount=10csrf=服务器生成的随机令牌缺少令牌时,合理的响应形态如下;这不是某个站点的实测记录,而是本篇示例规定的验证结果。HTTP/1.0 403 Forbidden Content-Type: text/plain; charset=utf-8 CSRF token rejectedCSRF 的危险在于,攻击页面通常不需要读取响应。只要浏览器能带上认证凭据,而服务器又把请求当作用户本人操作执行,账户资料、收货地址、密码修改或转账等状态就可能被伪造。核心概念与工作机制
返回列表