piątek, 10 sierpnia 2007

Zabezpieczenia formularzy MXML

Często może być taka sytuacja, że trzeba zabezpieczyć formularz MXML (np: kalkulator kredytowy) przed nieautoryzowanym wykorzystaniem na innych serwisach internetowych. W tej sytuacji wystarczy sprawdzić domenę z której formularz MXML korzysta

Oto kod:

import mx.utils.URLUtil;
import mx.controls.Alert;
private function init():void
{
var name:String = URLUtil.getServerName(Application.application.loaderInfo.url);
if(name != "www.jakisbank.pl")
{
Alert.show("Proszę skorzystać z kalkulatora kredytowego na stronie Banku");
}
}


Innym sposobem ochrony przed nieuczciwymi klientami jest zamieszczenie "bomb czasowych" . Polega to na tym, że klient jak zechce używać aplikacji RIA z formularzem MXML po upływie jakiegoś czasu to wprowadzamy jakieś utrudnienie dla użytkowników. A to jest bardzo proste:

private function initTimer():void
{
var now:Date = new Date();
var end:Date = new Date(2007, 6, 30);
if (end < now)
{
sabotage();
}
}


To są najprostsze zabezpieczenia. Ale dzięki możliwościom ActionScript 3 i samego Flash Playera 9 mamy możliwość tworzenia bardziej zaawansowanych sposobów zabezpieczeń przy pomocy szyfrowania i kryptografii. A także bardziej zmyślnych sposobów dostarczania treści i multimediów w zależności od ich jakości.

2 komentarze:

Sylwester Gąsiewski pisze...

a jak z dekompilacją takiego pliku?

Michał Małaj pisze...

Pojawienie się dekompilatorów plików formatu SWF 9 jest kwestią czasu. Adobe niedawno opublikowało specyfikację formatu SWF9.
Trzeba wiedzieć że dekompilacja plików SWF będącymi formularzami MXML opartymi na frameworku Flex do kodu MXML nie jest łatwym zadaniem ze względu na kolejność przekształceń
Dokument MXML jest przekształcany do kodu AS3 a ten kod do batjkodu ABC w pliku SWF a następnie kompresowany.
Na razie można podejrzeć bajtkod ABC narzędziem abcdump.exe
natomiast z bajtkodu ABC do kodu ActionScript 3 można spróbować narzędziem Imperator Fla v 4.0
Teoretycznie można jeszcze być spokojnym jeżeli chodzi o dekompilację plików SWF z Flex 2.