AFAIK在提交表单时无法设置标题字段,只能在ajax请求中完成
这个问题也指出这是不可能的:
但阅读Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet时提到:
加密令牌模式
概述
加密令牌模式利用加密,而不是 比较,令牌验证的方法。成功后 身份验证,服务器生成一个唯一的令牌组成 用户ID,时间戳值和nonce,使用唯一可用密钥 仅在服务器上。此令牌返回到客户端并嵌入 在一个隐藏的领域。随后的AJAX请求包括此令牌 request-header,与Double-Submit模式类似。 非AJAX基于表单的请求将隐式地将令牌保留在其隐藏字段中,但我建议将此数据保存在 在这种情况下自定义HTTP标头。收到此请求后, 服务器使用与之相同的密钥读取和解密令牌值 创建令牌。
这句话让我困惑:
我建议在这种情况下将此数据保存在自定义HTTP标头中
有人能说清楚吗?
答案 0 :(得分:2)
是的,这句话意味着POST操作是由自定义JavaScript处理程序调用的,以便注入AUTH头。我已经纠正了OWASP描述以反映这种疏忽。