Mrz 31 2010

Twitter Updates for 2010-03-31

Tag: AllgemeinKonstantin Elstner @ 22:00

Powered by Twitter Tools


Mrz 30 2010

Twitter Updates for 2010-03-30

Tag: AllgemeinKonstantin Elstner @ 22:00

Powered by Twitter Tools


Mrz 29 2010

Twitter Updates for 2010-03-29

Tag: AllgemeinKonstantin Elstner @ 22:00

Powered by Twitter Tools


Mrz 19 2010

LocalConnection’s Domain übergreifend

Tag: AdobeKonstantin Elstner @ 10:21

Vor zwei Tagen stolperte ein befreundeter Flashentwickler über das Problem der LocalConnection über mehre Domains hinweg in Actionscript 2.0. Er bekam die Verbindnung einfach nicht zum laufen.

Wie ich nun mal bin, fand ich das Problem gleich sehr interessant und testete auch gleich ausführlich.

Wir setzten den Dokumentationen entsprechend zum Test:

System.security.allowDomain(„*“);

Auch gab es im Internet die Angaben, dass auf allen Servern die crossdomain.xml notwendig wäre, was sich aber als Unsinn heraus stellte.

Nach kurzer Zeit fand ich dann jedoch in den Dokumentationen von Adobe den eigentlich wichtigen Punkt, der meiner Meinung nach in der Actionscript 3.0 Dokumtation beiweitem übersichtlicher dargestellt ist:

Different domains with predictable domain names. When two SWF files from different domains communicate, you need to allow communication between the two domains by calling the allowDomain() method. You also need to qualify the connection name in the send() method with the receiving LocalConnection object’s domain name:

// receivingLC is in http://www.domain.com/receiving.swf
receivingLC.allowDomain(‚www.anotherdomain.com‘);
receivingLC.connect(‚myConnection‘);

// sendingLC is in http://www.anotherdomain.com/sending.swf
sendingLC.send(‚www.domain.com:myConnection‘, ‚myMethod‘);

Different domains with unpredictable domain names. Sometimes, you might want to make the file with the receiving LocalConnection object more portable between domains. To avoid specifying the domain name in the send() method, but to indicate that the receiving and sending LocalConnection objects are not in the same domain, precede the connection name with an underscore (_), in both the connect() and send() calls. To allow communication between the two domains, call the allowDomain() method and pass the domains from which you want to allow LocalConnection calls.

Flash speichert lokale Daten in jeweiligen ‚Ordnern‘ pro Domain, dies gilt für LocalSharedObjects und LocalConnections. So ist sichergestellt, dass sich Daten von verschiedenen Domains nicht gegenseitig überschreiben können, bzw. das ein Actionscript nicht Zugriff auf Daten anderer Domains erhält.

Wird nun eine LocalConnection erstellt, so wird der LocalConnection ein Prefix bestehend aus der Domain voran gestellt zB. wird ‚myConnection‘ zu ‚www.domain.com:myConnection‘ gewandelt, selbiges gilt auch für Actionscript 2.0.

Will man diesen Automatismus umgehen weil man zB. nicht weiß wie die unterschiedlichen Domains auf dem Zielserver heißen werden, so muss man den Namen der LocalConnection einen Unterstrich voranstellen, daher ‚_myConnection‘, mit diesem Unterstrich weißt man den Flash Player an die LocalConnection als globale LocalConnection zu handeln. Der Flash Player fügt in diesem Fall nicht die Domain als Prefix hinzu. Zusätzlich muss aber auch allowDomain für die LocalConnection gesetzt werden:

myLC.allowDomain(‚*‘);

Hinweis

Die Domain die als Prefix verwendet wird ist nicht die des Servers auf dem die SWF eingebettet wurde, sondern die Domain des Servers der die SWF hostet.

Sicherheitshinweis:

An dieser Stelle sei an zumerken, dass mit allowDomain mit einer Wildcard (‚*‘)  immer mit Vorsicht gearbeitet werden sollte und die übergebenen Daten exakt geprüft werden sollten. Denn hier besteht die Gefahr von Sicherheitslücken, da über eine LocalConnection auch binäre Daten gehandelt werden können. So wäre ein Szenario denkbar, in dem ein Hacker, gezielt SWF’s auf LocalConnecntions prüft, diese dekompiliert, sich die Schnittstellen und Übergabewerte anschaut und so bald er einen Schwachpunkt findet versucht diesem Clip per LocalConnection manipulierte Daten unterzuschieben.

SWFBridge: Easier AS3 to AS2 Communication

Grant Skinner war so freundlich und hat uns Flashentwicklern ein kleines Geschenk gemacht, er hat die Class SWFBridge zur Verfügung gestellt, mit der sich in Knapp 4 Zeilen Code LocalConnections erstellen lassen, auch zwischen Actionscript 2.0 und 3.0 SWF’s. Kein nerviges Testen mehr ob die Synchronität klappt und ewiges Loopen … ein echtes must have:

http://www.gskinner.com/blog/archives/2007/07/swfbridge_easie.html


Mrz 18 2010

Twitter Updates for 2010-03-18

Tag: AllgemeinKonstantin Elstner @ 23:00
  • Just got Rucksack for Mac OS X completely free. Nothing paid! Really awesome! But hurry, only until March 23rd at http://www.macbuzzer.com #

Powered by Twitter Tools


Mrz 15 2010

Twitter Updates for 2010-03-15

Tag: AllgemeinKonstantin Elstner @ 23:00
  • Have to claim my new Corsair DDR3 XMS 4GB Kit today a second time, again the second part is defect … frustrating (2 claims in 2 days) #

Powered by Twitter Tools