Forum » Programiranje » Flash CS4 password access AS 3.0
Flash CS4 password access AS 3.0
betilly ::
Mene pa zanima , ce kdo ve kok bi v Flashu naredu s pomocjo ActionScripta 3.0, da bi moral uporabnik najprej vpisat username in password, sele nato bi lahko dostopal do dolocene strani. Rad bi pa naredil to tako, da bi v en .txt dokument pisal username, v drug .txt pa passworde. To bi pa naredil pol da bi iz teh txt dokumentov preverjal ali je uporabnik vpisal prave podatke. Pa ko bi bral iz txt dokumentov bi moral posebi za username in posebi za password dat v polja(da bi imel vsak svoj index stevilo), da nebi prislo do tega da bi npr. username miki in janez imela enak password in bi potem lahko kekec dostopal tudi z istim passwordom.
Hvala za pomoc
Hvala za pomoc
bluefish ::
kirupa.com ima en osnoven tutorial glede prijave. Boš pa potem moral še pogledati za registracijo in podobno.
Poleg tega je shranjevanje gesel in imen v plain text rahlo neumno in tako raje poveži flash s kako bazo, kamor lahko geslo kodiraš.
Poleg tega je shranjevanje gesel in imen v plain text rahlo neumno in tako raje poveži flash s kako bazo, kamor lahko geslo kodiraš.
betilly ::
Vrjetno si mislil ta tutorial http://www.kirupa.com/developer/flash5/... . To sm ze naredu, sam je problem v tem da lahko vsak ki se spozna vidi kodo katero sem jaz napisal v AS. Z bazami pa se nisem nic delal zato, sem mislil ce bi bilo mogoce to izvesti na moj nacin. Pa zanima me se zakaj je shranjevanje gesel in imen v plain text rahlo neumno? ali lahko drugi tudi vidijo te txt file, ki so na mojem racunalniku?
680x0 ::
Tole je že v osnovi zgrešen princip. Zakaj? Ker je Flash client-side aplikacija in če bo iz serverja bral neko txt datoteko, potem lahko uporabnik preprosto posnifa HTTP paketke, vidi do katere datoteke dostopa, jo odpre in pogleda vsebino.
Pravilen osnovni pristop k problemu bi bil naslednji:
- uporabnik vpiše up. ime in geslo
- flash pošlje POST request v katerem je uporabniško ime in geslo (po možnosti vsaj v obliki MD5 hasha, da ni ravno plain text) na neko server-side skripto (PHP, ...)
- server-side skripta preveri ali kombinacija ustreza vnosom v datoteki / bazi in odgovori z OK ali FALSE
- flash se na podlagi prejetega odgovora odloči kaj narediti z uporabnikom
Pravilen osnovni pristop k problemu bi bil naslednji:
- uporabnik vpiše up. ime in geslo
- flash pošlje POST request v katerem je uporabniško ime in geslo (po možnosti vsaj v obliki MD5 hasha, da ni ravno plain text) na neko server-side skripto (PHP, ...)
- server-side skripta preveri ali kombinacija ustreza vnosom v datoteki / bazi in odgovori z OK ali FALSE
- flash se na podlagi prejetega odgovora odloči kaj narediti z uporabnikom
betilly ::
A tako gre to. A mogoče veš kje bi našel kakšen primer, ki bi mi pomagal rešiti moj problem. V flashu znam naredit da vpises pa to, sam kako to z kaksno bazo povezat to se mi pa ne sanja. Ce obstaja kakšna stran mogoce. Hvala
680x0 ::
Tutorialov je precej po netu... v osnovi gre zadeva takole (kode nisem testiral, zato se zna kje skrivati kaka napaka, je bolj za to, da veš v katero smer razmišljat):
1.) Ko v Flashu upobanik vpiše ime/geslo, uporabi URLRequest z metodo POST, da na neko PHP skripto (recimo http://test.si/login.php) pošlješ username in password. Preveri kaj dobiš nazaj od te skripte in ustrezno ukrepaj.
ActionScript 3:
2.) PHP skripta preveri točnost komnbinacije v bazi in vrne ustrezen odziv - lahko pa na začetku, za potrebe testiranja, kar hardcodaš kombinacijo, npr. takole:
... kako namesto tega PHP skripta za pravo kombinacijo pogleda v bazo, si boš že pogledal kak tutotorial (google: "php mysql login").
1.) Ko v Flashu upobanik vpiše ime/geslo, uporabi URLRequest z metodo POST, da na neko PHP skripto (recimo http://test.si/login.php) pošlješ username in password. Preveri kaj dobiš nazaj od te skripte in ustrezno ukrepaj.
ActionScript 3:
public function sendData(url:String, user:String, pass:String):void { var request:URLRequest = new URLRequest(url); var loader:URLLoader = new URLLoader(); var variables:URLVariables = new URLVariables(); variables.username = user; variables.password= pass; loader.dataFormat = URLLoaderDataFormat.VARIABLES; request.data = variables; request.method = URLRequestMethod.POST; loader.addEventListener(Event.COMPLETE, handleComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError); loader.load(request); } private function handleComplete(event:Event):void { var loader:URLLoader = URLLoader(event.target); loader.dataFormat = 'text'; if (loader.data == 'OK') { trace("Vse v redu"); } else { trace("Ni v redu"); } } private function onIOError(event:IOErrorEvent):void { trace("Error loading URL."); }
2.) PHP skripta preveri točnost komnbinacije v bazi in vrne ustrezen odziv - lahko pa na začetku, za potrebe testiranja, kar hardcodaš kombinacijo, npr. takole:
<?php $username = $_POST['username']; $password = $_POST['password']; if (($username == 'joze') and ($password == 'geslo')) { echo "OK"; } else { echo "FALSE"; } ?>
... kako namesto tega PHP skripta za pravo kombinacijo pogleda v bazo, si boš že pogledal kak tutotorial (google: "php mysql login").
infiniteLoop ::
Ma ja zdaj, ce smo "pametni", lahko nekdo tudi prestreze komunikacijo in vedno vrne "OK".
None of us is as dumb as all of us.
680x0 ::
Če smo pametni, potem nobenega relevantnega podatka ne "zapakiramo" v SWF, ker klient je vedno "v rokah sovražnika". Ampak tu gre bolj za učenje najbolj osnovnega mehanizma avtentikacije v Flash aplikacijah.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | skripta za pošiljanje brezplačnih sms sporočil (strani: 1 2 3 4 )Oddelek: Programiranje | 44682 (9922) | AštiriL |
» | Slo-Tech userscriptsOddelek: Izdelava spletišč | 5195 (2647) | jype |
» | C# težavaOddelek: Programiranje | 3752 (2598) | mladec |
» | ASP.NET + C# vprašanjeOddelek: Programiranje | 2796 (1810) | Morenov |
» | [Flash AS3] Povezava z MySQLOddelek: Programiranje | 1957 (1818) | 680x0 |