非ajax提交中添加自定义标头

3
据我所知,在提交表单时无法设置标题字段,只能在ajax请求中完成。这个问题也指出了这一点:但是,在阅读跨站请求伪造(CSRF)预防备忘单时提到: 加密令牌模式 概述 加密令牌模式利用加密而非比较的方法进行令牌验证。在成功认证后,服务器使用仅服务器可用的唯一密钥生成由用户ID、时间戳值和随机数组成的唯一令牌。该令牌返回到客户端并嵌入隐藏字段中。随后的AJAX请求将在请求头中包含此令牌,类似于双重提交模式。对于基于表单而非AJAX的请求,将隐式保留该令牌在其隐藏字段中,尽管我建议在这种情况下将此数据持久化为自定义HTTP标头。在接收到此请求时,服务器使用与创建令牌时相同的密钥读取和解密令牌值。

这句话让我感到困惑:

我建议在这种情况下将此数据持久化为自定义HTTP标头。

有人能给我解释一下吗?

1个回答

2
是的,这句话暗示了POST操作是由自定义JavaScript处理程序调用的,以便注入AUTH标头。我已经更正了OWASP描述以反映这个疏忽。

这是否意味着使用内置表单发布已经过时,因为它无法防范CSRF攻击?在每个表单中设置隐藏字段也容易出错(使用ajax替换post也是如此)。 - Cesar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接