PDA

Volledige versie bekijken : enige beveiliging van swf files mogelijk?


educasoft
%Europe/Berlin %569 %2009, 14:39
Hoy, ik ben op zoek naar een manier om zelfgemaakte flashbestanden (swf) enigszins te beveiligen.

Nu weet ik wel dat flash een open formaat is, dus 100 % beveiligen is niet mogelijk, maar je kan de potentiële dief wel serieus ontmoedigen.

In ieder geval had ik al gedacht om op zijn minst de swf de beveiligen met zo'n swf obfuscator of zo, al weet ik nog niet of er daar voor flash CS4 (as3.0) iets goeds voor is.

Dat maakt het decompileren moeilijker of moeilijker leesbaar toch, maar het belet niemand op een swf bestand gewoon letterlijk over te nemen op een eigen server.

Daarom zou ik willen vragen of iemand hieromtrent tips heeft?
Ik dacht vooral in de richting van:

- Kan ik in flash (as3.0) checken welke de absolute url is van mijn flashbestand, zodat ik kan zien of het bestand wel van mijn eigen domein gedownload werd?
- Kan ik vanuit flash zien welke de URL is van de pagina waarin mijn flashbestand embedded zit?
- Kan ik eventueel mijn flash bestand bij het opstarten een soort van communicatie opzetten die enkel werkt als het bestand op mijn eigen server staat?
- .....


Alle tips zijn welkom.

De bedoeling is om online content te publiceren die we eerst op cd-rom gingen brengen, maar als er een beetje online beveiligd kan worden, dan zou het best leuk zijn om ook alles netjes op een website te plaatsen.


Met dank voor alle mogelijke tips,

Bart

TheDutch
%Europe/Berlin %227 %2009, 06:28
Zoek even op het forum, er is genoeg info over te vinden :).

educasoft
%Europe/Berlin %289 %2009, 07:56
Nu ben ik echt geen type die post zonder even de zoekfunctie te gebruiken.
Dus heb ik blijkbaar niet echt gevonden wat ik zocht. Daarom vraag ik het hier even.

Via het forum vond ik wel wat over decompilers, maar dat is enkel beveiliging tegen het jatten van uw code.
Het allerbelangrijkste is dat ik de flash filmpjes eigenlijk alleen wil zien draaien op mijn eigen webpage op hun vaste plaats en nergens anders online (ook niet als ze deeplinken vanuit hun website naar mijn swf bestand op mijn server)

Ondertussen heb ik ergens iets gelezen van loaderInfo.url die aangeeft op welke absolute url de flashfilm staat (daarmee kan je in ieder geval al verhinderen dat een flashmovie op een andere webserver (fysiek) komt te staan of lokaal gestart wordt.
Nu moet ik dus vooral nog wat vinden tegen leechers, want als mijn filmpje staat (fysiek) op www.xxx.com en een ander linkt vanaf www.yyy.com/demo.htm naar mijn filmpje op www.xxx.com/mijnSWF.swf , dan zal loaderinfo.url toch MIJN domein zien en geen vuiltje aan de lucht bespeuren.


Dus echt, alle tips zijn meer dan welkom.
Ik gebruikte vroeger Adobe Director en daar kon je opvragen welke de URL was van de webpagina die de film embedde

mknol
%Europe/Berlin %344 %2009, 09:16
Dit zorgt ervoor dat je pagina in een html moet staat, dat javascript verplicht is en je hebt de url. Zorg wel dat allowScriptAcces aan staatvar url:String = ExternalInterface.call( 'window.location.href.toString' );

educasoft
%Europe/Berlin %352 %2009, 09:27
dus met deze code vind ik de url van de page.

Als javascript dan NIET aanstaat of allowscriptaccess OFF staat, dan returnt dit gewoon NIETS en kan ik ervan uitgaan dat de swf ergens anders embedded is of er is een poging geweest om het te hacken?

Heeft U enig idee of dit enigszins te omzeilen is voor malafide hackers (zonder dat de de swf moeten gaan decompileren uiteraard) ?

TheDutch
%Europe/Berlin %545 %2009, 14:06
Je kunt de URL van de SWF vinden met: this.stage.loaderInfo.url :).

Jan
%Europe/Berlin %641 %2009, 16:24
Je kunt de URL van de SWF vinden met: this.stage.loaderInfo.url :).
want als mijn filmpje staat (fysiek) op www.xxx.com en een ander linkt vanaf www.yyy.com/demo.htm naar mijn filmpje op www.xxx.com/mijnSWF.swf , dan zal loaderinfo.url toch MIJN domein zien en geen vuiltje aan de lucht bespeuren.
Nu moet ik dus vooral nog wat vinden tegen leechers
http://www.google.be/search?q=Prevent+people+from+linking+to+your+files +on+their+web+pages

En in het algemeen wat beveiling betreft:

1)wat Mknol zegt.

én
2)eigenlijk ook wat TheDutch zegt

én
3)de swf laten communiceren met een php script (ivm crossdomain)

én
4)obfusceren van je actionscript

én
5)encrypten en embedden van je echte swf in een 'lader swf' ([Embed]+loadBytes, het decrypt en laad -script in de 'lader-swf' moet je ook obfusceren)

én
6)de (commerciële) decompilers laten crashen (zijn trukjes voor (Google...)) zodat de hacker aangewezen is op een bytecode viewer (en dat leest dan weer niet handig bij ge-obfusceerde scripts die unprintable characters gebruiken.)

én
7)het downloaden moelijker maken door met php sessions te werken en eventueel je server configuratie zo aan te passen dat files met .swf extensie (in bepaalde folders) als php script uitgevoerd worden waarin je dan checkt op die session. (De echte swf bewaar je buiten de root folder van je server)

Maar zoals je zelf al zei:
Nu weet ik wel dat flash een open formaat is, dus 100 % beveiligen is niet mogelijk, maar je kan de potentiële dief wel serieus ontmoedigen.
De juiste persoon met de juiste tools kan alle bovenstaande omzeilen of teniet doen (maar deze zijn wel heel dun gezaaid...)

Groeten;
Jan
Ps:
In ieder geval had ik al gedacht om op zijn minst de swf de beveiligen met zo'n swf obfuscator of zo, al weet ik nog niet of er daar voor flash CS4 (as3.0) iets goeds voor is.
Ik heb er een tijdje geleden eentje gemaakt met AS3. :)
http://www.flashfocus.nl/forum/showthread.php?t=51338

educasoft
%Europe/Berlin %855 %2009, 21:31
Thanks,

Veel stof tot nadenken.