Je suis en train de saisir une page Web avec actionscript, mais continue à obtenir cette erreur (par exemple en essayant d'attraper github.com):Yat-il un moyen d'attraper une page Web avec Actionscript ??? Je reçois un SecurityError
[SWF] /get-webpage.swf - 2,708 bytes after decompression Error: Request for resource at http://github.com by requestor from http://localhost:4567/get-webpage.swf is denied due to lack of policy file permissions.
* Security Sandbox Violation * Connection to http://github.com halted - not permitted from http://localhost:4567/get-webpage.swf
Est-il possible de faire ce travail en Actionscript? Comment le fichier crossdomain.xml
joue-t-il? D'après ce que je comprends, un site Web met un crossdomain.xml
à la racine, en spécifiant qu'un swf peut accéder à leurs affaires. Est-ce exact? De quoi ai-je besoin pour que le travail ci-dessus fonctionne? Le code que je travaille avec est essentiellement ceci:
var request:URLRequest = new URLRequest("http://github.com")
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, complete);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, error);
loader.load(request);
function complete(event:Event):void {
trace(event.target.data);
}
function error(event:SecurityErrorEvent):void {
trace(event.text);
}
Avec ce dans le fichier HTML:
var flashvars = {};
var params = {allowscriptaccess: "always"};
var attributes = {id: "my_flash", name: "my_flash"};
swfobject.embedSWF("/get-webpage.swf", "flash_content", "50%", "50%", "10.0.0", "playerProductInstall.swf", flashvars, params, attributes, swfHasLoadedSir);
Est-il possible de contourner cette erreur de sécurité?
Oui. Dans ce cas, utilisez un proxy (PHP, BlazeDS, ou Apache fonctionnent bien pour cela). Les politiques crossdomain peuvent ouvrir des sites à des menaces de sécurité graves: http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/ –
Yep C'est la bonne réponse. Juste vous n'avez pas expliqué pourquoi. C'est la même politique d'origine qui empêche cela. – rook