格子图访问令牌是秘密吗?

时间:2016-11-07 20:05:53

标签: security plaid

Plaid Link API documentation表示成功的Plaid链接的结果返回具有以下属性的public_token

  

一旦用户通过Plaid Link成功加入,模块将会   提供一个public_token。这与典型的Plaid API形成对比   请求,返回access_token。

     

在应用或浏览器中公开是否安全

     

不能直接用于检索帐户和路由号码(用于身份验证)或交易(用于连接)

     

可以通过。兑换格子的access_token   / exchange_token endpoint。

据推测,这与access_token形成鲜明对比,这意味着access_token是一个秘密。但是,据我所知,access_token需要secret,还需要客户的ID和secret值。

假设// Create x2js instance with default config var x2js = new X2JS(); var jsonObj = { MyRoot : { test: 'success', test2 : { item : [ 'val1', 'val2' ] } } }; var xmlAsStr = x2js.json2xml_str( jsonObj ); 实际上是保密的,那么暴露访问令牌在理论上是否安全?如果没有,我错过了什么?如果是这样,公共代币的重点是什么?

1 个答案:

答案 0 :(得分:3)

您的假设是正确的,access_token应该保密。

公开access_token的唯一原因是向用户显示该信息(没有理由这样做),或者向客户端提供信息,以便以后可以将其发回(例如用于身份验证的OAuth令牌。

但是如果您公开access_token,则意味着您的API期望用户在请求信息时发送自己的访问令牌。您的API信任该用户输入。如果用户可以访问其他用户access_token,则可以将其发送到您的API,并访问其他用户的帐户。

为了防止这种未经授权的访问,您需要跟踪哪个用户可以访问哪些令牌,并且您必须根据请求进行验证,以确保没有未经授权的访问。

此时,你需要问自己,为什么要首先揭露access_token?客户ID是公开信息,因此您依赖的是secret不会公开的事实。如果您的秘密被曝光,您的access_tokens已被视为公开,那么所有用户的所有银行信息都将被公开。

为确保您的用户数据尽可能安全,绝不应将access_token提供给最终用户。