Возможен ли интерфейс Javascript Amazon SimpleDB? - PullRequest
5 голосов
/ 24 августа 2010

Я проверяю документацию amazon simpledb.Они упоминают только языки на стороне сервера.

Есть ли способ вставить данные в базу данных напрямую со стороны клиента, не проходя через сервер?

Если нет, то как?

Ответы [ 5 ]

5 голосов
/ 24 августа 2010

Да и нет. Поскольку вам необходимо защитить свой секретный ключ для AWS (хакеры могут использовать его для злоупотребления вашей учетной записью), вы не можете аутентифицировать запросы в JS напрямую.

Хотя вы можете создать реализацию в JS, она будет небезопасной. Практично для некоторых внутренних целей, его нельзя было бы безопасно развернуть (поскольку это раскрыло бы ваш секретный ключ). Вместо этого вы можете использовать свой сервер для аутентификации запросов к SimpleDB и позволить JS выполнить фактический запрос к Amazon. Хотя это немного окольным, это будет работать.

Недостатком является то, что вам нужно выполнить кучу обработки на стороне клиента. Вы также, вероятно, извлекаете больше данных, чем ваше приложение потребляет / выводит, поэтому обработка данных на клиенте, а не на сервере, вероятно, приведет к большей задержке просто потому, что вы передаете больше данных пользователю и обрабатываете их медленнее.

Надеюсь, это поможет

2 голосов
/ 24 августа 2010

Если нет, то как?

Security. Вы проходите аутентификацию в БД с помощью своей учетной записи разработчика. Amazon не знает о ваших конечных пользователях (что необходимо для аутентификации доступа непосредственно из браузера). Это зависит от кода приложения, чтобы определить, что конечным пользователям разрешено делать, а что нет.

Тем не менее, есть пример приложения Javascript Scratchpad для Amazon SimpleDB . Он получает доступ к SimpleDB напрямую из браузера (вы должны ввести свои учетные данные AWS).

1 голос
/ 08 декабря 2010

SimeplDBAdmin - это интерфейс на основе Javascript / PHP:

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

На стороне PHP есть скрипт-ретранслятор [relay.php], который будет передавать запросы, сделанные из клиента Javascript иотправить их на сервер, получить ответ от сервера и переформатировать его для клиента.Это должно легко обойти междоменные проблемы с Javascript [если веб-клиент загрузил веб-страницу, содержащую код javascript с www.example.com, он только позволит javascript подключаться к www.example.com по умолчанию].

Все остальное, включая подписание запроса, выполняется с помощью кода Javascript.

Также обратите внимание, что Amazon недавно выпустила новый бета-сервис, позволяющий настраивать дополнительные учетные записи под своей учетной записью Amazon.,Защита simpleDB является очень простой [включенной или выключенной для каждой учетной записи], но, поскольку она обеспечивает некоторую ограниченную форму отслеживания запросов, можно утверждать, что использование Javascript и предоставление каждому пользователю своего СОБСТВЕННОГО ИД пользователя и ключа для подписания запроса является БОЛЕЕ безопасным.Разумеется, использование каждым пользователем ТОГО ЖЕ ИДЕНТИФИКАТОРА и сертификата небезопасно.

0 голосов
/ 22 ноября 2011

См. этот ответ на аналогичный вопрос о предоставлении безопасного, анонимного доступа только для чтения к SimpleDB от ненадежных клиентов: анонимное чтение с amazon simpledb .

Некоторые отличия от этого ответа:

  • не устанавливает политику доступа только для чтения.Тем не менее, он допускает мелкозернистый контроль, поэтому вы все равно можете ограничить тип разрешенных записей
  • не быть анонимными. Примеры документов AWS для аутентификации на основе токенов и Примеры приложений показывают параллельные пути: анонимный доступ или неанонимный доступ AWS / федеративный с вашими учетными данными, но без раскрытия вашего секретного ключа.
0 голосов
/ 08 сентября 2011

Доступен бесплатный чистый интерфейс JavaScript.Пожалуйста, смотрите https://chrome.google.com/webstore/detail/ddhigekdfabonefhiildaiccafacphgg

...