5

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

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

如果没有,怎么会?

4

5 回答 5

5

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

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

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

希望这可以帮助

于 2010-08-24T05:54:42.463 回答
2

如果没有,怎么会?

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

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

于 2010-08-24T05:48:52.313 回答
1

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 和证书是不安全的。

于 2010-12-08T14:40:07.247 回答
0

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

于 2011-09-07T20:23:17.427 回答
0

请参阅有关允许从不受信任的客户端对 SimpleDB 进行安全、匿名、只读访问的类似问题的答案:使用 amazon simpledb 进行匿名读取

该答案的一些变化:

  • 不要将访问策略设置为只读。但是,它允许细粒度控制,因此您可能仍希望限制允许的写入类型
  • 不要匿名。基于令牌的身份验证和示例应用程序AWS 文档显示了并行路径:匿名访问或非匿名 AWS/联合访问,使用您的凭证但不暴露您的密钥。
于 2011-11-22T19:41:10.547 回答