- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发自己的应用程序来自定义 PODIO 的行为。我非常关心我和我的客户数据的安全性。因此,我编写了以下测试代码:
var api_key = {
authType: 'password',
clientId: 'foo',
clientSecret: 'foo'
};
var podio_api = require('../node_modules/podio-js/lib/podio-js');
var podio = new podio_api (api_key);
var username = 'foo';
var password ='foo';
var callback = function (err, responsedata) {
if (err) throw (err);
console.log (responsedata);
};
podio.authenticateWithCredentials (username, password, callback);
它将以下内容记录到控制台:
{ access_token: 'foo',
expires_in: 28800,
token_type: 'bearer',
scope: 'global:all',
ref: { type: 'user', id: 999999 },
refresh_token: 'foo' }
换句话说,它工作得很好(谢谢!)。但是安全呢?跑道首页关于API约定和结构的说明如下:
The API is available at https://api.podio.com. It is RESTful and uses json as the exchange format. SSL is mandatory and used for all communication. OAuth2 is used for authorization and authentication.
但是正如您从代码中看到的那样,我没有向它提供任何来自证书签名机构的证书,并且该程序没有在我指定为在我的 Podio 帐户设置下返回 URL 的域上运行。因此,似乎任何获得访问/刷新 token 副本的人都可以访问存储在我的跑道帐户中的所有数据。
--> 跑道 API 是否允许任何拥有 token 的服务器访问给定的跑道用户帐户?
--> 使用跑道JS时访问/刷新 token 的传输是否加密?
提前谢谢你。
最佳答案
我绝对不是专家,但由于没有人回答这个问题,这里是我自己想出的答案。
问题一:token的传输是否加密?
首先要弄清楚的是 HTTPS 的实际使用方式。它由服务器和客户端之间的通信组成。本例中的服务器是 https://api.podio.com客户端是第三方应用程序。我发现在这种关系中,只有服务器需要由证书颁发机构签署的证书才能建立加密的 HTTPS 通信。
有关更多详细信息,请参阅:How does SSL/TLS work?和 How HTTPS secures connections .
所以我肯定地假设问题 1 的答案是:是。
问题 2:PODIO 服务器是否向任何拥有 token 的人授予访问权限?
关于这个问题,首先要弄清楚的是授予访问权限的过程是如何进行的。它来自 PODIO 网站,该网站使用 OAuth2 授予第三方应用程序访问与给定 PODIO 用户帐户相关的存储数据的权限。这个过程可以这样形象化:
其中User为PODIO相关用户账号,应用为第三方应用,授权和资源服务器为PODIO服务器。
在此上下文中,重要的是要注意第三方应用程序可以在 PODIO 用户帐户的所有者注销后继续使用访问 token ,并且一旦 token 过期,第三方应用程序可以接收新的访问权限使用与原始访问 token 一起接收的刷新 token 的 token 。也就是说:一旦用户帐户的所有者授权发行第一个访问 token ,第三方应用程序就可以 24/7 365 访问 PODIO 帐户,而无需用户帐户所有者的进一步参与(当然,所有者可以选择撤销访问权限)。
同样重要的是要注意 PODIO API 授予对用户帐户中(几乎)所有数据(联系人、文件、评论、项目......)的访问权限。
鉴于此,我很遗憾得出问题 2 的答案也是:是的结论。
结束语: token 在传输时被加密,这当然可以防止滥用。但是,服务器和客户端之间的通信允许使用客户端证书。
有关这些的更多详细信息,请参阅:What is a client side certificate?
有关它们为何很少使用的更多信息,请参阅:Why is nobody using SSL client certificates?
客户端证书的使用将允许服务器在每次请求访问与给定用户帐户相关的数据时对第三方客户端应用程序进行身份验证。如果 token 最终落入坏人之手,这将增加额外的安全层。我有点失望,PODIO 目前似乎没有提供这层安全。
如果答案不充分或不正确,请帮助编辑此答案。 TIA。
关于javascript - 跑道JS : Can I trust that the access/refresh token can only be used from a specific IP address?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35015975/
我正在开发一个应用程序,它使用 OAuth - 基于 token 的身份验证。 考虑到我们拥有访问和刷新 token ,这就是流程的样子。 Api call -> intercepter append
如何取消标记此代码的输出? 类(class)核心: def __init__(self, user_input): pos = pop(user_input) subject = ""
当我使用命令 kubectl 时与 --token标记并指定 token ,它仍然使用 kubeconfig 中的管理员凭据文件。 这是我做的: NAMESPACE="default" SERVICE
我正在制作 SPA,并决定使用 JWT 进行身份验证/授权,并且我已经阅读了一些关于 Tokens 与 Cookies 的博客。我了解 cookie 授权的工作原理,并了解基本 token 授权的工作
我正在尝试从应用服务获取 Google 的刷新 token ,但无法。 日志说 2016-11-04T00:04:25 PID[500] Verbose Received request: GET h
我正在开发一个项目,只是为了为 java 开发人员测试 eclipse IDE。我是java新手,所以我想知道为什么它不起作用,因为我已经知道该怎么做了。这是代码: public class ecli
我正在尝试使用 JwtSecurityTokenHandler 将 token 字符串转换为 jwt token 。但它出现错误说 IDX12709: CanReadToken() returned
我已阅读文档 Authentication (来自 Facebook 的官方)。我仍然不明白 Facebook 提供的这三种访问 token 之间的区别。网站上给出了一些例子,但我还是不太明白。 每个
我的部署服务器有时有这个问题,这让我抓狂,因为我无法在本地主机中重现,我已经尝试在我的 web.config 中添加机器 key ,但没有成功远。 它只发生在登录页面。 我的布局:
我已经设法获得了一个简单的示例代码,它可以创建一个不记名 token ,还可以通过阅读 stackoverflow 上的其他论坛来通过刷新 token 请求新的不记名 token 。 启动类是这样的
如果我有以前的刷新 token 和使用纯 php 的访问 token ,没有 Google Api 库,是否可以刷新 Google Api token ?我在数据库中存储了许多用户刷新和访问 toke
我通过 Java 应用程序使用 Google 电子表格时遇到了问题。我创建了应用程序,该应用程序运行了 1 年多,没有任何问题,我什至在 Create Spreadsheet using Google
当我有一个有效的刷新 token 时,我正在尝试使用 Keycloak admin REST API 重新创建访问 token 。 我已经通过调用 POST/auth/realms/{realm}/p
我正在尝试让第三方 Java 客户端与我编写的 WCF 服务进行通信。 收到消息时出现如下异常: Cannot find a token authenticator for the 'System.I
在尝试将数据插入到我的 SQl 数据库时,我收到以下错误 System.Data.SqlServerCe.SqlCeException: There was an error parsing the
使用数据库 session token 系统,我可以让用户使用用户名/密码登录,服务器可以生成 token (例如 uuid)并将其存储在数据库中并将该 token 返回给客户端。其上的每个请求都将包
我最近注册了 Microsoft Azure 并设置了认知服务帐户。使用 Text Translation API Documentation 中的说明我能够使用 interactive online
我使用 IAntiforgery API 创建了一个 ASP.Net Core 2 应用程序。 这提供了一种返回 cookie 的方法。 客户端获取该 cookie,并在后续 POST 请求中将该值放
我正在使用 spacy 来匹配某些文本(意大利语)中的特定表达式。我的文本可以多种形式出现,我正在尝试学习编写一般规则的最佳方式。我有如下 4 个案例,我想写一个适用于所有案例的通用模式。像这样的东西
我无法理解 oauth 2.0 token 的原则处理。 我的场景是,我有一个基于 web 的前端后端系统,带有 node.js 和 angular 2。用户应该能够在此站点上上传视频。然后创建一些额
我是一名优秀的程序员,十分优秀!