【问题标题】:Provides tapestry's hmac-passphrase sufficient csrf protection?提供 Tapestry 的 hmac-passphrase 足够的 csrf 保护?
【发布时间】:2014-08-15 06:49:59
【问题描述】:

我想知道,为什么 Tapestry 的 hmac 功能不足以防止 Cross-Site-Request-Forgery。

Tapestry 将序列化的对象编码为 Base64 编码的字符串,存储在客户端;主要是用于表单提交,对提交时处理表单所需的一组操作进行编码。

(quoted jira issue)

tapestry 框架(5.3.6 及更高版本)使用 hmac 对上述数据进行签名。当客户端提交表单时,此数据将包含在 POST 请求中的 t:formdata 参数中,并由服务器验证。 从我的角度来看,这足以防止crsf。签名数据是在服务器上使用一个只有服务器知道的密钥创建的。 攻击者应该如何创建一个被服务器接受的有效的 t:formdata 元素? 我很困惑,因为我在互联网上找到了几个库/实现,它们为挂毯添加了 csrf 保护。 我还阅读了SO-answer,其中指出,hmac “可能”(或可能不是?)足以提供 csrf 保护。

结论:在哪些情况下,hmac 不能对 csrf 提供足够的保护?为什么?

【问题讨论】:

    标签: csrf tapestry hmac


    【解决方案1】:

    HMAC 仅适用于提交的表单数据的一部分,Tapestry 将反序列化为 Java 对象的部分。从理论上讲,这足以让攻击者破坏服务器 JVM(尽管不一定能够将代码或行为注入应用程序)。启用 HMAC 后,只要 HMAC 在服务器上保密,提交的表单数据就是安全的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 2021-08-09
      • 2012-08-17
      • 2020-01-29
      • 2020-06-18
      • 2021-09-05
      相关资源
      最近更新 更多