Csrf跨站请求伪造(客户端发起)简述原理,利用已登录用户的身份,以该用户名义发送恶意请求,实现非法操作。实际应用中,通过在设置.py中间件中启用 django.middleware.csrf.CsrfViewMiddleware 功能,以确保安全性。在表单发起POST请求时,需加入{% csrf_token %}指令。测试方法包括安全扫描、使用burpsuite进行包抓取,删除或设置请求参数中的token,重放请求,若无异常则存在漏洞。同样,开启双页面测试,若权限失效的页面仍能被操作,说明存在风险。工具使用上,对于AJAX请求,需在请求头中加入headers,如{'X-CSRFtoken': $.cookie('csrftoken')}。检测流程一般关注操作验证、token及referer的使用。注册多个账户,通过A账户生成的poc检测B账户,以验证漏洞。防御策略包括:输入原始密码二次验证、设置随机Token、检验referer来源、限制请求方式为POST等。具体措施有,通过请求地址添加token验证、筛选防范CSRF的页面并嵌入token、在请求头中验证referer来源,仅响应本域请求、设置验证码,使用localStorage或sessionStorage保存会话。通过例子理解攻击基本思想,用户在信任存在CSRF漏洞的网站A,访问危险网站B后,B发出请求,浏览器因携带用户cookie信息而访问A网站,导致模拟用户操作。借助工具如Burpsuit可利用其自带的csrf跳转页面构造功能进行相关操作测试。