node.js - 如何为 strip 状态生成随机哈希

标签 node.js stripe-payments stripe-connect

根据 Stripe 网站上的建议:

CSRF 保护 为了防止 CSRF 攻击,请使用状态参数,并传递唯一的 token 作为值。当我们重定向回来时,我们将包含您给我们的状态。

我想在我的 URL 中包含一个 state 参数,以保护我的应用程序。我认为现在对我来说已经很清楚了,state 参数应该是唯一的、安全的,并且只是一系列字符,这些字符将通知我的应用程序哪个用户刚刚获得了 Stripe connect 的授权。我会将该值存储在我的数据库中,当用户返回时,我会知道他们是谁,并能够将他们引导到正确的位置。所以我的下一个问题。我如何创建这个独特的 token ?我有一个从 OAuth 提供程序返回的唯一 token ,用于我的应用程序的单独部分,但我尚未将其保存在数据库中。

是否有推荐的方法在我的 Node 服务器上创建这种类型的唯一 token ?应该是md5还是sh1?我应该获取用户名和随机字符串并将其保存在我的数据库中,就像它是盐和哈希一样吗?

require('crypto').createHash('md5').update(STRING_TO_BE_HASH‌​ED + SALT).digest("hex")

我是不是想太多了?

最佳答案

您可能想要使用功能齐全的 CSRF 中间件,例如 csurf管理 CSRF token ,但如果您想自己生成 token ,任何“足够随机”的值都应该有效。像这样的事情应该可以解决问题:

const crypto = require('crypto');
var token = crypto.randomBytes(64).toString('hex');

关于node.js - 如何为 strip 状态生成随机哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43558910/

相关文章:

javascript - 启动 PM2 时从 dotenv 文件加载一个变量

node.js - 类型错误 : Cannot read property 'prototype' of undefined React Express

javascript - 如何防止浏览器重新加载 Express 中的 POST 路由?

stripe-payments - Stripe : No such external account but the external account do exist

ios - 从 stripe 账户转账到其他账户

javascript - Nodejs Mongoose 数组推送无法正常工作

javascript - 如果你用 express js 重载同一条路线会发生什么?

javascript - Stripe 测试数据 : single digit month failing validation

iOS Firebase Stripe Integration with/Cloud Functions,相当于 iOS 中的 push() 和 push Id

php - Stripe 连接收费返回错误 (PHP)