2

对于我的 CMS 组件,我正在实现与 Twitter API 的集成,以获取和显示推文列表(连接到用户或搜索查询)。我正在使用Twitter Restful API v1.1,因为 1.0 版本将在两个月后被删除。对我来说,两个有趣的请求是user_timelinesearch一个。

由于我的技术强烈依赖缓存,因此我需要尽可能避免服务器端处理,提供静态 html 和一段 javascript。我已经为旧版本的 API 完成了它,它工作得很好。然而,新方法需要通过 OAuth 提供身份验证数据。其中一个属性 ( oath_signature) 是其他属性的散列(其中有oauth_timestampoath_nonce,每个 twitter 请求应该(应该?)是唯一的)和密钥,因此在客户端生成它是不安全的。

是否有任何安全的方法可以使用新 API 在客户端获取推文列表?

4

2 回答 2

1

您的问题的简单答案是,“不,没有服务器端代码就没有安全的方法。” 我要做的是设置一个服务,每 xxxx 秒轮询一次 Twitter 并检索所需的推文。您应该缓存或存储结果,然后在每次发出下一个请求时清空它们。如果您使用的是 C#,我一直在开发一个C# Twitter 库,该库复制了 Twitter 的 API,并且已经支持抓取用户的时间线。我将在接下来的两天内添加对过滤器和搜索的支持(如果您决定自己做的话,每个应该不超过十分钟来实现,不包括测试)。你可以在我之前提到的服务中引用这个库。

如果您没有为此所需的服务器资源,那么我强烈警告您不要使用绕过 Twitter 预期证券的解决方案,因为这可能会使您或您的客户处于易受攻击的位置。

于 2013-04-01T16:41:33.533 回答
0

您必须在服务器端编写代理 Web 服务。正如您所说,缓存对于避免每 15 分钟 15 个请求用于拉推推文等基本内容至关重要。

绝对避免在前端做任何身份验证的事情。使用 OAuth 2的新“仅应用程序”身份验证将允许您在 JavaScript 中嵌入不记名令牌,这意味着您无需执行任何您正在谈论的签名内容。但是不要。任何人都可以使用您的不记名令牌,如果您自己的用户没有用尽速率限制,其他人可能会窃取您的令牌。

如果您自己没有服务器端资源来执行此操作,则可能需要查看Flamingo。它会为你做身份验证和缓存,所以你只需要像以前一样在 JS 中工作。

于 2013-03-30T15:58:28.610 回答