2009-03-26 11 views
0

Je souhaite charger des vidéos FLV du serveur S3 dans mon application Flash. Les fichiers originaux devront être protégés (c'est-à-dire que les permissions seront lues uniquement pour les utilisateurs authentifiés) afin que les fichiers vidéo soient appelés avec une URL signée ... J'ai réussi à charger et lire des FLV non signés dans l'application Flash.Pouvez-vous lire des vidéos FLV d'URL signée S3 dans Flash 10?

1) Tout problème que je devrais connaître avant de plonger?
2) Aurai-je besoin d'utiliser la bibliothèque AS3 S3 pour générer des signatures?
3) Puis-je générer une signature lorsque l'application se charge (par exemple à partir de PHP) et l'envoyer à Flash pour l'utiliser avec chaque fichier FLV qu'elle charge?
4) Les images et le son seront également chargés dans l'application Flash et devront également être protégés.

Merci Stephen

Répondre

0

Oui, vous pouvez jouer urls signé Flash Pas de problème ...

à la lecture autour j'ai réussi à répondre à quelques de mes propres questions -

1) Oui beaucoup!
2) Pas une bonne idée de signer des URL à partir de Flash, car la clé secrète devrait être dans le fichier SWF ou chargée depuis PHP, ce qui pourrait constituer un risque pour la sécurité. Il est probablement préférable d'appeler une méthode PHP sur le serveur pour générer une URL signée et retourner le fichier à Flash/retourner le chemin vers le fichier (sendAndLoad?). Mais cela semble être une étape supplémentaire qui pourrait être contournée d'une manière ou d'une autre!
3) Je ne suis toujours pas sûr de cela, mais je pense que le processus de signature implique l'utilisation du chemin vers le fichier afin que chaque signature pour chaque URL soit unique - est-ce correct?

Quelqu'un peut-il avoir d'autres conseils à ce sujet? Stephen

0

Apparemment, j'ai dépensé un milliard d'heures en essayant la même chose avec des fichiers MP3 pour mon site web. Pour répondre:

1) Pas trop compliqué une tâche. (malgré mes heures Gazillion)

2) Ne pas signer d'URL à partir de Flash. Utilisez un fichier PHP hébergé auquel vous pouvez effectuer une requête AJAX pour obtenir des URL signées. Pour cela, la structure de répertoire de votre compartiment S3 doit avoir un motif cohérent qui rend l'emplacement du fichier, donné une certaine entrée, déterminable par programme.

Je ne sais pas que c'est un processus qui peut être contourné. La signature d'URL ne doit être effectuée que côté serveur et jamais côté client. Faites-moi savoir si vous voulez voir mon exemple de code AJAX. Ill le coller ici pour vous

3) Le processus de signature utilise un minimum de trois variables pour créer une signature: l'horodatage, l'emplacement du fichier (bucket/folder/floder/file), la clé secrète S3. Par conséquent, Chaque demande d'un fichier doit avoir une signature distincte. Les URL signées devraient avoir une validité très limitée (disons 10 secondes). Les utilisateurs qui peuvent trouver l'URL sans ces 10 secondes doivent être en mesure de télécharger le fichier. Avoir des signatures qui varient en fonction de l'horodatage seul peut vaincre (en grande partie sinon complètement) tout le but d'avoir des URL signées.

Pour signer des URL, utilisez le script ci-dessous. Cela fonctionne comme le charme et m'aurait sauvé beaucoup d'heures si je l'ai eu à temps. Regardez également le point 5 ci-dessous pour plus de sécurité.

http://www.richardpeacock.com/blog/2010/07/amazon-aws-s3-query-string-authentication-php

4) Pour certains lecteurs flash raison ne jouent pas Signés URL S3 pour les fichiers MP3. Je pense (GUESS) qu'ils ignorent la partie de l'URL une fois que l'extension .mp3 dans l'URL est lue. Ainsi, la partie chaîne de requête de l'URL est ignorée par le lecteur et ne peut pas lire le fichier. Ils jouent des fichiers publiquement restituables dans mon S3 Bucker. J'ai utilisé silverlight pour mon site et j'utilise désespérément pour une solution FLASH. Si c'est la raison pour laquelle les fichiers FLV protégés ne joueront pas non plus. Dans ce cas, vous devrez envoyer le fichier entier à votre client uniquement par l'intermédiaire de l'URL. Une solution que j'essaie d'éviter. 5) 5) pour protéger davantage vos URL, les obfusciter en utilisant un ou plusieurs des procédés dans le lien ci-dessous. Ils sont très simples.

http://www.pc-help.org/obscure.htm

6) En outre, votre approche de sécurité doit être à lancer la lecture du fichier sur le navigateur avant expiration de l'URL. La période d'expiration doit être suffisamment courte pour empêcher la détection d'URL avant expiration et doit être suffisamment longue pour permettre une latence suffisante pour commencer la lecture. C'est plus ou moins le cœur d'un streaming raisonnablement sécurisé utilisant des URL auto-expirantes.

0

Pour répondre à vos points spécifiques

questions que vous devez être au courant: Le point 4 dans la ma 1ère réponse;

Bibliothèque Amazon S3 requise? : Oui mais pas vraiment, Point 3 dans ma première réponse, Script dans le lien peut être utilisé sans se référer à la documentation, Mais vous aurez besoin de comprendre la méthode de signature Amazones

Juste utiliser 1 signature? : Non recommandé, Détruit tout usage d'une signature, Probablement non car je pense que la signature utilise obligatoirement le chemin et le nom du fichier

Audio & Protection d'image: Toute protection est raisonnable (en supposant que vos utilisations finales n'ont pas de contrainte de temps ou de connaissance) et peut écrire du code). Images: Utilisez Javascript pour désactiver le clic droit, Audio: Streams peuvent être téléchargés avec un peu de bricolage que vous pouvez compliquer.

Les images seraient certainement téléchargeables en désactivant JavaScript ou en perforant du code JS à partir du JS Scratchpad/Console. Donc même détecter si JS est activé n'aidera pas à protéger les images.

Questions connexes