2017-04-22 73 views
1

每建议的条纹网站上随机哈希:如何产生条纹状

CSRF Protection To prevent CSRF attacks, use the state parameter, passing along a unique token as the value. We’ll include the state you gave us when we redirect back.

我想包括在我的网址一state参数,以确保我的应用程序。我认为现在已经足够清楚了,state参数应该是唯一的,安全的,并且只是一系列字符,它们会通知我的应用程序哪个用户刚被Stripe连接授权。我将把这个值存储在我的数据库中,当用户返回时,我会知道他们是谁,并能够将他们引导到正确的位置。所以我的下一个问题。我如何创建独特的令牌?我有一个独立的令牌,它是从我的应用程序的单独部分的OAuth提供程序返回的,但我没有将它保存到数据库中。

是否有建议的方式在我的节点服务器上创建此类型的唯一标记?应该是md5还是sh1?我应该把用户名和一个随机字符串保存在我的数据库中,就好像它是盐和散列一样?

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

上午我这得太多?

回答

1

您可能想要使用功能齐全的CSRF中间件(如csurf)来管理CSRF令牌,但如果要自己生成令牌,则应该使用任何“足够随机”的值。像这样的应该做的伎俩:

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