【问题标题】:is a hashed uuid4 a good csrf token?散列的 uuid4 是一个好的 csrf 令牌吗?
【发布时间】:2013-01-03 16:36:45
【问题描述】:

这是一个好的 csrf 令牌吗?它是否有足够的熵,或者是否有一些容易猜到并且可以降低熵的部分,比如请求的时间?

一个示例 python 实现将是 b

token = hashlib.sha256(str(uuid.uuid4())).hexdigest()

【问题讨论】:

    标签: token csrf uuid entropy


    【解决方案1】:

    uuid v4 有 122 个随机位(可能是 128 个),所以,是的,它应该可以作为 CSRF 令牌。

    (顺便说一句,散列可以完成任何事情吗?除了随机排列随机位之外,它并没有做太多事情。)

    【讨论】:

    • 我不确定通过暴露 uuid4 揭示了多少关于系统的信息,所以我对其进行了散列以掩盖可能泄露的任何细节。
    • 那么不要理会哈希。 6 个非随机位用于 rfc4122 中的 uuid 变体和版本,并且对于所有 v4 uuid 都是相同的;他们不会透露任何有关您的系统的信息。
    • 我正在做类似的事情。 UUIDv4 是 sessionID(实现为 HttpOnly cookie),会话的 antiCSRF 令牌是 sha256(sessionID),保持简单并且不会将 sessionID 暴露给 javascript。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2015-06-23
    • 2011-08-07
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 2021-11-30
    相关资源
    最近更新 更多