csrf, CSRF令牌创建和验证背后的逻辑

分享于 

4分钟阅读

GitHub

  繁體 雙語
primary logic behind csrf tokens
  • 源代码名称:csrf
  • 源代码网址:http://www.github.com/pillarjs/csrf
  • csrf源代码文档
  • csrf源代码下载
  • Git URL:
    git://www.github.com/pillarjs/csrf.git
    Git Clone代码到本地:
    git clone http://www.github.com/pillarjs/csrf
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/pillarjs/csrf
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    CSRF

    NPM VersionNPM DownloadsNode.js VersionBuild StatusTest Coverage

    逻辑 behind CSRF令牌创建和验证。

    阅读了解CSRF插件,了解更多关于CSRF的信息。 使用这里模块创建定制CSRF中间件。

    寻找使用这个模块的你喜欢的框架的CSRF框架?

    安装

    $ npm install csrf

    API

    var Tokens =require('csrf')

    new Tokens( [options] )

    创建新的令牌生成/验证实例。 options 参数是可选的,如果缺少,则只使用所有默认值。

    命令行选项

    标记在选项对象中接受这些属性。

    saltLength

    要使用的内部salt的长度,以字符为单位。 在内部,salt是基 62字符串。 默认为 8 字符。

    secretLength

    要生成的密钥的长度,以字节为单位。 注意,秘密是通过 base-64 编码的,这个长度是指底层字节,而不是 base-64 字符串的长度。 默认为 18 字节。

    tokens.create(secret )

    创建一个附加到给定 secret的新CSRF令牌。 secret 是一个字符串,通常从 tokens.secret() 或者 tokens.secretSync() 方法生成。 这个标记应该添加到 HTML <form> 块中,并期望用户的浏览器提供回。

    var secret =tokens.secretSync()var token =tokens.create(secret)
    tokens.secret(callback )

    异步创建一个新的secret,它是一个字符串。 秘密将保存在服务器上,通常存储在用户的服务器端会话中。 密钥应该至少是每个用户。

    tokens.secret(function (err, secret) {
     if (err) throw err
     // do something with the secret})
    tokens.secret( )

    异步创建新的secret 并返回 Promise。 有关详细信息,请参阅 tokens.secret(callback) 文档。

    注意 : 在 0.12之前,在 node.js 中使用承诺,必须使用global.Promise = require('bluebird')

    tokens.secret().then(function (secret) {
     // do something with the secret})
    tokens.secretSync( )

    tokens.secret(callback)的同步版本。 有关详细信息,请参阅 tokens.secret(callback) 文档。

    var secret =tokens.secretSync()
    tokens.verify(secret, token )

    检查CSRF令牌对于给定的secret 是否有效,返回一个布尔值。

    if (!tokens.verify(secret, token)) {
     thrownewError('invalid token!')
    }

    许可证


    log  Token  Creation  逻辑  CSRF  CSR  
    相关文章