2008-09-04 8 views
5

Je souhaite autoriser mes utilisateurs à intégrer leurs propres animations Flash dans leurs publications. Habituellement, le fichier réel est hébergé sur un site d'hébergement d'images gratuit. Je ne chargerais pas le flash à moins que l'utilisateur n'ait cliqué sur un bouton pour jouer (de sorte que rien ne se joue automatiquement lors du chargement de la page). Je sais que les gens peuvent faire des conneries vraiment énervantes en flash, mais je ne trouve pas d'informations sur les dommages potentiels qu'une application flash pourrait causer à la visionneuse.Comment intégrer en toute sécurité un fichier flash (swf)?

Est-il dangereux d'incorporer n'importe quel fichier Flash des internets? Si oui, comment puis-je laisser les utilisateurs intégrer des animations innocentes tout en évitant les applications nuisibles?

modifier:

De ce que je comprends, la menace la plus évidente est pour actionscript de vous rediriger vers un site malveillant.

Adobe says vous pouvez définir allowScriptAccess = jamais et allowNetworking = aucun et le swf ne devrait pas avoir accès à rien en dehors de lui-même. Est-ce que cela résoudra tous mes problèmes?

Répondre

0

Oui, c'est dangereux.

Il n'y a pas de moyen facile de le permettre. Vous pouvez avoir une liste blanche de domaine autorisant YouTube, Hulu, etc., mais la mise en liste blanche est intrinsèquement laborieuse - vous serez constamment mis à jour.

3

Flash a mis en place des mesures de sécurité soignées. Permettre aux utilisateurs de télécharger des swf sur votre site et de les intégrer n'est pas sûr, vous vous mettez en place pour une attaque XSS. Toutefois, leur permettre de créer un lien ne devrait pas poser de problème. Le swf sera verrouillé sur le domaine qui l'héberge et n'est pas autorisé à appeler l'URL en dehors de cet espace.

Il sera toujours ouvert aux "liens maléfiques" (je suis sûr qu'il y a un mot approprié pour eux), et par là je veux dire avoir des liens réguliers vers votresite.com/admin/deleteallpages.php qu'il essaie de charger "comme toi. Il ne sera cependant pas capable d'utiliser ces données de quelque façon que ce soit, il sera fondamentalement identique à un lien normal, et je suppose que les cms modernes sont protégés contre ce type d'attaques.

Vous pouvez obtenir la même protection en hébergeant vos flashs sur un sous-domaine différent, puisque flash considère cela comme un domaine complètement différent.

+0

"liens du mal" sont appelés CSRF, falsification de requêtes Cross site. –

3

Lors de l'intégration de sources inconnues fonds souverains, il est préférable de jeter pratique également un masque sur le chargeur de sorte que le fichier SWF chargé ne peut pas prendre en charge plus écran de l'immobilier que prévu.

pseudo-code pour le faire:

var maskSpr : Sprite = new Sprite(); 
maskSpr.graphics.beginFill(); 
maskSpr.graphics.drawRect(0,0,safeWidth,safeHeight); 
maskSpr.graphics.endFill(); 
myLdr.mask = maskSpr; 
2

Il est en fait plus d'une option.

Pour être totalement sûr, définissez allowScriptAccess = never et allowNetworking = none et le swf n'aura accès à rien en dehors de lui-même. REMARQUE: allowNetworking est uniquement disponible dans Flash Player 9 (il a été créé en réponse à divers vers myspace). Vous devez donc utiliser SWF Object pour vous assurer que seuls les utilisateurs disposant de la bonne version du lecteur Flash ou mieux auront le flash chargé .

Si vous souhaitez activer des éléments tels que des vidéos YouTube, vous ne pouvez pas définir allowNetworking sur "none". Heureusement, il existe un niveau de sécurité intermédiaire pour ce champ - "interne" qui permet au SWF de parler à son domaine hébergé.

Notez également que vous feriez mieux de ne pas avoir un fichier crossdomain.xml sur votre site - en savoir plus sur ces dangers here et d'autres lieux.

Voici quelques autres sites qui sont mentionnés par d'autres réponses qui vont plus en détail:

http://www.adobe.com/devnet/flashplayer/articles/secure_swf_apps_04.html

http://blogs.adobe.com/stateofsecurity/2007/07/how_to_restrict_swf_content_fr_1.html

Questions connexes