【问题标题】:Add custom header on non-ajax post在非 ajax 帖子上添加自定义标题
【发布时间】:2015-06-28 21:24:19
【问题描述】:

AFAIK 在提交表单时无法设置标题字段,只能在 ajax 请求中完成

这个问题也指出不可能:

但在阅读Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet 时提到:

加密令牌模式

概述

加密令牌模式利用加密,而不是 比较,令牌验证的方法。成功后 身份验证时,服务器会生成一个唯一的令牌,该令牌由 用户 ID、时间戳值和随机数,使用可用的唯一键 仅在服务器上。此 Token 返回给客户端并嵌入 在一个隐藏的领域。后续的 AJAX 请求在 request-header,与 Double-Submit 模式类似。 基于非 AJAX 表单的请求会隐式地将 Token 持久保存在其隐藏字段中,尽管我建议将此数据持久保存在 在这种情况下自定义 HTTP 标头。收到此请求后, 服务器使用相同的密钥读取和解密 Token 值 创建令牌。

这句话让我很困惑:

在这种情况下,我建议将此数据保存在自定义 HTTP 标头中

有人能解释一下吗?

【问题讨论】:

    标签: html forms post header html-post


    【解决方案1】:

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

    【讨论】:

    • 这是否意味着使用内置表单发布已经过时了,因为它无法防范 CSRF ?在每个表单中设置隐藏字段也容易出错(就像用 ajax 替换帖子一样)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多