【问题标题】:Amazon SimpleDB Javascript interface possible?Amazon SimpleDB Javascript 接口可能吗?
【发布时间】:2010-08-24 05:36:16
【问题描述】:

我正在查看亚马逊 simpledb 文档。他们只提到服务器端语言。

是否可以直接从客户端将数据插入数据库而不通过服务器?

如果没有,怎么会?

【问题讨论】:

    标签: javascript authentication amazon-web-services amazon-simpledb


    【解决方案1】:

    是的,不是的。由于您需要保护 AWS 的密钥(黑客可能会使用它来滥用您的帐户),因此您无法直接在 JS 中对请求进行身份验证。

    虽然您可以在 JS 中创建实现,但它本质上是不安全的。对于某些内部用途来说很实用,它永远无法安全地部署(因为这会暴露你的密钥)。您可以做的是使用您的服务器对 SimpleDB 的请求进行身份验证,并让 JS 执行对 Amazon 的实际请求。虽然有点迂回,但还是可以的。

    缺点是您需要在客户端进行大量处理。您还可能获取比您的应用程序消耗/输出更多的数据,因此在客户端而不是服务器上处理数据可能会遇到更多延迟,这仅仅是因为您将更多数据传输给用户并且处理速度更慢。

    希望对你有帮助

    【讨论】:

    • 您现在(大部分情况下)可以安全地在客户端执行此操作,而无需泄露密钥。请参阅下面的答案和我的相关答案stackoverflow.com/questions/4988367/…。您可以获得 99% 的客户端调用,剩下的 1% 使用小型、安全的服务器端组件。
    【解决方案2】:

    如果没有,怎么会?

    安全。您使用您的开发人员帐户向数据库进行身份验证。亚马逊不了解您的最终用户(它需要了解,以便直接从浏览器进行访问身份验证)。由应用程序代码决定最终用户可以做什么和不可以做什么。

    也就是说,有Javascript Scratchpad for Amazon SimpleDB 示例应用程序。它确实可以直接从浏览器访问 SimpleDB(您必须输入您的 AWS 凭证)。

    【讨论】:

    • couchdb 可能是我要找的吗?
    • 好吧,您仍然需要在浏览器之外的某个地方(不能被黑客入侵)配置访问权限。
    • 您现在(大部分情况下)可以安全地在客户端执行此操作,而无需泄露密钥。请参阅下面的答案和我的相关答案stackoverflow.com/questions/4988367/…。您可以获得 99% 的客户端调用,剩下的 1% 使用小型、安全的服务器端组件。
    【解决方案3】:

    SimeplDBAdmin 是一个基于 Javascript/PHP 的界面:

    http://awsninja.com/2010/07/08/simpledbadmin-a-phpmyadmin-like-interface-for-amazon-simpledb/

    PHP 端是一个中继脚本[relay.php],它将传递来自 Javascript 客户端的请求并将它们发送到服务器,从服务器获取响应并为客户端重新格式化。这是为了轻松解决 Javascript 的跨域问题[如果 Web 客户端从 www.example.com 下载了包含 javascript 代码的网页,则默认情况下只允许 javascript 连接回 www.example.com] .

    其他一切,包括请求签名,都由 Javascript 代码完成。

    另外请注意,亚马逊最近发布了一项新的测试服务,允许您在您的亚马逊账户下设置子账户。 simpleDB 保护非常基本[每个帐户打开或关闭],但由于它确实提供了一些有限形式的请求跟踪,因此可以说使用 Javascript 并为每个用户提供他们自己的用户 ID 和请求签名密钥更安全。当然,让每个用户都使用相同的用户 ID 和证书是不安全的。

    【讨论】:

      【解决方案4】:

      有一个免费的纯 JavaScript 界面可用。请看https://chrome.google.com/webstore/detail/ddhigekdfabonefhiildaiccafacphgg

      【讨论】:

        【解决方案5】:

        请参阅this answer 以了解有关允许不受信任的客户端对 SimpleDB 进行安全、匿名、只读访问的类似问题:anonymous read with amazon simpledb

        该答案的一些变化:

        • 不要将访问策略设置为只读。但是,它允许细粒度控制,因此您可能仍希望限制允许的写入类型
        • 不要匿名。 AWS docs on token based authexample apps 显示并行路径:匿名访问或非匿名 AWS/联合访问,使用您的凭证但不暴露您的密钥。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-20
          • 1970-01-01
          • 2017-06-06
          • 2015-12-10
          • 2012-03-28
          • 2014-09-23
          相关资源
          最近更新 更多