【问题标题】:Javascript Calling a Rest API with App Name and App Password - How Can i Secure itJavascript 使用应用程序名称和应用程序密码调用 Rest API - 我如何保护它
【发布时间】:2012-07-02 05:07:10
【问题描述】:

我相信这个问题已经被问了很多时间了。

但想再次确认我的疑问并获得一些提示。

我打算将 buddy.com 后端作为一项服务来玩。 我看到如果您使用 JavaScript,他们的大多数 REST API 都需要嵌入应用程序名称和密码。 他们还没有任何关于 javascript 的文档。 但是想知道我是否必须立即从使用普通 html 或 HTML5 网络应用程序的 Javascript 开始使用它。如何使用它。

我不想以明文形式传递应用程序密码,因为任何人都可以查看浏览器的源代码,或者可以运行 fiddler 来查看正在调用的内容。 我知道曾经有人会说,嘿,你为什么不使用特定时间有效的令牌系统。

但我是这里的消费者, 我如何保护在浏览器的视图源中看到的密码,因为我将通过网页/应用程序上的 java 脚本调用 API。

buddy.com API 的典型示例

http://webservice.buddyplatform.com/Service/v1/BuddyService.ashx?Pictures_ProfilePhoto_Add&BuddyApplicationName=&BuddyApplicationPassword=&UserToken=&bytesFullPhotoData=&ApplicationTag=&RESERVED=

任何提示将不胜感激。 谢谢

【问题讨论】:

  • 如果他们不提供生成客户端密钥的方法(如 OpenTok 或 Twilio Client),您需要通过您自己的后端为通过您的应用程序进行身份验证的用户代理请求.
  • 谢谢,我知道后端很容易。但是如果你不通过 javascript 来做到这一点,有没有办法保护它?

标签: javascript security api


【解决方案1】:

客户端运行的 JavaScript 始终可以使用 GreaseMonkey 进行修改。 ALL VARIABLES 可以使用 Firebug 之类的 JavaScript 调试器读取。 ALL REQUESTS可以被tamperdata拦截和修改。

结果是您永远无法信任 JavaScript,因为它的客户端代码。为了对攻击者保密,您需要对 JavaScript 保密。您可以使用中间 API 执行此操作,该 API 知道秘密并代表客户端执行请求。此 API 需要强制执行身份验证,或者谁有权访问给定资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2015-05-12
    • 2011-02-22
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多