5

Je vérifie la documentation d'amazon simpledb. Ils ne mentionnent que les langues côté serveur.Amazon SimpleDB Interface Javascript possible?

Est-il possible d'insérer des données dans la base de données directement du client sans passer par un serveur?

Si non, comment ça se fait?

Répondre

5

Oui et non. Puisque vous devez protéger votre clé secrète pour AWS (les pirates peuvent l'utiliser pour abuser de votre compte), vous ne pouvez pas authentifier directement les requêtes dans JS.

Bien que vous puissiez créer une implémentation dans JS, il serait intrinsèquement non sécurisé. Pratique pour certaines utilisations internes, il ne pourrait jamais être déployé en toute sécurité (car cela exposerait votre clé secrète). Ce que vous pouvez faire à la place est d'utiliser votre serveur pour authentifier les requêtes auprès de SimpleDB et laisser JS effectuer la requête réelle sur Amazon. Même si c'est un peu rond, ça marcherait. L'inconvénient est que vous auriez besoin de faire beaucoup de traitement côté client. Il est probable que vous récupériez plus de données que votre application consomme/produit, donc le traitement des données sur le client plutôt que sur le serveur rencontrerait probablement plus de latence simplement parce que vous transférez plus de données à l'utilisateur et le traitez plus lentement.

Hope this helps

+1

Vous pouvez maintenant (surtout) faire ce côté client, en toute sécurité, sans révéler la clé secrète. Voir ma réponse ci-dessous et ma réponse connexe http://stackoverflow.com/questions/4988367/anonymous-read-with-amazon-simpledb. Vous obtenez 99% d'appels côté client avec 1% restant avec un petit composant côté serveur sécurisé. – toolbear

2

Sinon, comment ça se fait?

Sécurité. Vous vous authentifiez auprès de la base de données avec votre compte de développeur. Amazon ne connaît pas vos utilisateurs finaux (ce dont il aurait besoin, afin d'authentifier l'accès directement à partir du navigateur). Il appartient au code de l'application de déterminer ce que les utilisateurs finaux sont autorisés à faire et ce qui ne l'est pas.

Cela dit, il existe l'exemple d'application Javascript Scratchpad for Amazon SimpleDB. Il accède à SimpleDB directement depuis le navigateur (vous devez taper vos credendials AWS).

+0

Le couchdb pourrait-il être ce que je recherche? – JSNewbie

+0

Eh bien, vous devez toujours configurer les autorisations d'accès quelque part en dehors du navigateur (où il ne peut pas être piraté). – Thilo

+0

Merci, comme d'habitude toutes les réponses sont bonnes. – JSNewbie

1

SimeplDBAdmin est une interface Javascript/PHP:

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

Le côté PHP est un script de relais [relay.php] qui transmettra les demandes du Javascript client et les envoyer sur le serveur, prend la réponse du serveur et le reformate pour le client. C'est pour contourner facilement les problèmes inter-domaines avec Javascript [si le client web avait téléchargé la page web contenant le code javascript de www.example.com, il ne permettra que javascript de se connecter à www.example.com par défaut] .

Tout le reste, y compris la signature de la requête, est effectuée par le code Javascript.

Notez également qu'Amazon a récemment lancé un nouveau service bêta pour vous permettre de configurer des sous-comptes sous votre compte Amazon. La protection simpleDB est très basique [activée ou désactivée par compte] mais comme elle fournit une forme limitée de suivi des requêtes, on pourrait soutenir qu'utiliser Javascript et donner à chaque utilisateur son ID utilisateur et sa clé pour la signature de la requête est PLUS sécurisé. Le fait que chaque utilisateur utilise le même nom d'utilisateur et le même certificat serait, bien sûr, non sécurisé.

0

Voir this answer à la question similaire sur l'accès sécurisé, anonyme et en lecture seule à SimpleDB de clients non approuvés: anonymous read with amazon simpledb.

Quelques variations de cette réponse:

  • politique d'accès ne fixent pas en lecture seule. Cependant, il permet un contrôle à granularité fine, de sorte que vous souhaiterez peut-être limiter le type d'écriture autorisé
  • ne soyez pas anonymes. Les AWS docs on token based auth et example apps affichent des chemins parallèles: accès anonyme ou accès AWS/fédéré non anonyme avec vos informations d'identification mais sans exposer votre clé secrète.
Questions connexes