Sfat rapid Blocați SWF la un anumit nume de domeniu

Doriți să păstrați SWF exclusiv pe site-ul dvs.? În acest sfat rapid, vom analiza modul de utilizare a unei "blocări a site-ului" pentru a împiedica descărcarea SWF de către dvs. și încorporarea acestuia pe un alt site web.


Rezultatul final al rezultatelor

Aici este fișierul care rulează pe un domeniu incorect:

Vom construi un ecran animat care va fi activat când SWF se află pe un domeniu greșit, ca în exemplul de mai sus. Spunând că, dacă doriți să aflați mai multe despre codul de blocare a site-ului, treceți la pasul 5.


Pasul 1: Tweener

Înainte de a începe să scrieți codul și să adăugați desene sau modele la scenă, trebuie mai întâi să obțineți Tweener. Pentru acest proiect am folosit open source, care poate fi utilizat pentru proiecte deschise și comerciale. Caurina tweener este disponibil la code.google.com.

După ce ați descărcat Tweener, copiați-l și lipiți-l în folderul proiectului. Rețineți că dosarul trebuie să fie numit caurina, în interiorul dosarului trebuie să existe un folder numit tranziții, iar în interiorul acestuia o încărcare de fișiere de clasă Flash .as.

Odată cu realizarea primului pas, putem continua să codificăm și să proiectăm fișierul.


Pasul 2: Dimensiunea fișierului și straturile

Dimensiunea fișierului este irelevantă. Domeniul casei de dame este blocarea SWF-ului sau a componentei, în cazul în care cineva a descărcat-o de la dvs. fără permisiunea dvs..

Pentru acest exemplu, am folosit o dimensiune de stadiu de 540 x 400, puteți utiliza orice dimensiune dorită.

După ce ați selectat dimensiunea fișierului, creați 3 straturi noi ca în imaginea de mai jos. Păstrați întotdeauna stratul de acțiuni gol. Etapele organizate sunt mult mai ușor de utilizat și de înțeles.


Pasul 3: Sistemul de cenzură

După ce ați creat cele 3 straturi, creați 2 noi monitoare. Plasați-le oriunde doriți, indiferent de dimensiunea dorită. Înălțimea de 40 de pixeli cu 10 pixeli înălțime, să zicem, fără nici un accident vascular cerebral. Poziționarea nu este importantă, deoarece vom plasa mai târziu aceste acțiuni de acțiuni.

Acum, vine cel mai important aspect al acestor movieclips, punctul de înregistrare. Uită-te la imaginile de mai jos, atunci când convertirea bitmap-urilor la movieclips, amintiți-vă să faceți următoarele altfel fișierul nu va rula la potențialul său deplin:

Și, desigur, numele de instanțe:

Felicitări! Ați adăugat casetele care vor închide pagina în jos, în cazul în care domeniul este greșit. Acum, adăugați o casetă de text dinamică în mijlocul scenei sau oriunde doriți să fie. Această casetă text va informa utilizatorul care a descărcat ilegal fișierul că fișierul este protejat de script ... Dați-i un nume de instanță warning_txt


Pasul 4: Încărcarea claselor necesare

Acum, odată ce ați creat casetele și casetele de text, sunteți gata să codificați. În stratul acțiunilor blocate, apăsați F9 și adăugați următorul cod:

 import flash.events. *; import flash.display.LoaderInfo; import flash.display.MovieClip; import flash.net.navigateToURL; import flash.net.URLRequest; import flash.net.URLVariables; import caurina.transitions.Tweener
  • flash.events. *; incarca toate evenimentele de care probabil vom avea nevoie.
  • flash.display.LoaderInfo; aduce toate informațiile pe care trebuie să le încărcăm și care se vor încărca cu fișierul.
  • flash.flash.display.MovieClip; încărcăm toate evenimentele pe care le vom întâlni în timp ce folosim movieclips.
  • import caurina.transitions.Tweener; încarcă motorul tween și animația barelor de blocare a conținutului.

Restul evenimentelor încărcate sunt necesare pentru ca Flash să aibă acces la adresa URL a paginii din bara.


Pasul 5: Verificarea unei anumite pagini

 var url: String = stage.loaderInfo.url;

Să presupunem că SWF este încărcat pe pagină http://www.domainName.com/siteFolder/sitePage.html. Linia 9 extrage această adresă URL și o atribuie unui șir numit URL-ul.


Pasul 6: Cauza și efectul

Acum, când Flash știe de unde să obțină adresa URL, este timpul să comparăm acest lucru cu adresa URL a site-ului nostru Web și să luăm măsuri dacă se potrivesc sau nu

 funcția pageDomainCheckInit (eveniment: Eveniment): void if (url! = "http://www.domainName.com/siteFolder/sitePage.html") warning_txt.text = "Acest fișier rulează pe adresa URL greșită. restricționat "!; closeBoxTop.x = 0 closeBoxTop.visible = true; closeBoxTop.height = stadiu.costHeight / 2 Tweener.addTween (closeBoxTop, lățime: stage.stageWidth, alfa: 0.8, timp: 1, tranziție: "easeInOutExpo"); closeBoxBottom.x = stage.stageWidth closeBoxBottom.visible = true; closeBoxBottom.height = stadiu.stageHeight / 2 Tweener.addTween (closeBoxBottom, lățime: stage.stageWidth, timp: 1, alfa: 0.8, tranziție: "easeInOutExpo");  altfel warning_txt.text = ""; closeBoxTop.visible = false; closeBoxBottom.visible = false;  stage.removeEventListener (Event.ENTER_FRAME, pageDomainCheckInit);  stage.addEventListener (Event.ENTER_FRAME, pageDomainCheckInit);

Am folosit un ascultător de evenimente pentru a începe verificarea șirului de adrese URL identificat anterior. Ceea ce face în realitate este să spuneți flash că dacă șirul din bara de navigare (sau adresa URL la care este găzduită pagina) nu este corect, atunci pagina va executa scriptul de blocare a conținutului și va avertiza utilizatorul că domeniul este incorect. În caz contrar, dacă pagina este corect plasată, casetele care închid pagina nu vor fi afișate, nici textul de avertizare.

După ce această secțiune este finalizată, eliminăm ascultătorul evenimentului, astfel încât fișierul să nu mănânce resurse verificând și reverificând și reverificând din nou și din nou. Odată ce șirul este tras cu succes, comparat, iar scriptul este executat cu succes pageDomainCheckInit evenimentul este eliminat.

 dacă (url! = "http://www.domainName.com/siteFolder/sitePage.html") 

Această secțiune a codului este în principiu un "DACĂ NU", deci dacă pagina nu este http://www.domainName.com/siteFolder/sitePage.html Flash va începe să execute funcții sub IF, dar altfel - dacă SWF se află pe pagina corectă - Flash va scoate blocurile din scenă și va păstra totul curat și ordonat. Nu vei ști niciodată că e acolo.

Acum, să vedem ce se întâmplă când fișierul nu se află pe domeniul potrivit.

 warning_txt.text = "Acest fișier rulează pe paginaDomain greșit. Acces restricționat la conținut!"; closeBoxTop.x = 0 closeBoxTop.visible = true; closeBoxTop.height = stadiu.costHeight / 2 Tweener.addTween (closeBoxTop, lățime: stage.stageWidth, alfa: 0.8, timp: 1, tranziție: "easeInOutExpo"); closeBoxBottom.x = stage.stageWidth closeBoxBottom.visible = true; closeBoxBottom.height = stadiu.stageHeight / 2 Tweener.addTween (closeBoxBottom, lățime: stage.stageWidth, timp: 1, alfa: 0.8, tranziție: "easeInOutExpo");

Codul pe care îl vedeți aici, poziționează casetele CloseBoxes la sfârșitul etapei de început și etapă (closeBoxTop = 0, closeBoxBotton = stage.stageWidth), și le face invizibile (closeBoxTop.visible = false, closeBoxBottom.visible = false), acestea îi ascund de pe scenă, îi ține departe de vedere și nu afectează aspectul site-ului. Cu toate acestea, ele sunt acolo.

Dacă pagina sau componenta este instalată pe un alt site / nume de domeniu pe care nu intenționa să fie inițial, acestea devin vizibile. Acestea se extind pe ecran, acoperind-o complet și avertizând utilizatorul că conținutul este furat sau nu unde ar trebui să fie.

Această măsură nu numai că informează utilizatorul general că fișierul nu este locul în care ar trebui să fie, dar, de asemenea, împiedică afișarea oricărui conținut.


Pasul 7: Verificarea unui anumit domeniu

Dacă nu vrem să verificăm dacă SWF este încărcat pe un anumit domeniu?

Deci, în loc să verificați dacă SWF este la http://www.domainName.com/siteFolder/sitePage.html, doar verificăm dacă este undeva pe domainName.com site-ul web. Deci ar putea fi https://private.domainName.com/secure/secret.html și încă lucrează.

Putem realiza acest lucru prin editarea codului care primește adresa URL, astfel:

 var url: String = stage.loaderInfo.url; // această linie a fost aici înainte! var urlBeginning: int = url.indexOf (": //") + 3; var urlTerminare: int = url.indexOf ("/", urlBeginning); var pageDomain: String = url.substring (urlBeginning, urlTerminare); var lastDot: int = pageDomain.lastIndexOf (".") - 1; var CaracterAfterDomain: int = pageDomain.lastIndexOf (".", lastDot) + 1; pageDomain = pageDomain.substring (CharacterAfterDomain, pageDomain.length);

Cod explicat

Să presupunem că SWF este încărcat pe pagină http://www.domainName.com/siteFolder/sitePage.html. Linia 9 returnează această adresă URL și o alocă Stringului numit URL-ul. Asta e aceeași linie pe care am avut-o înainte.

Linia 10 a codului preia poziția din URL-ul paginii : //

Linia 11 a codului primește prima / care apare în URL după : //. Acest lucru este de fapt foarte important, deoarece între aceste nume de domeniu real poate fi găsit.

Linia 12 a codului face doar conectarea în Flash a a ceea ce se află între: // și primul / obținerea numelui de domeniu String gata pentru verificare în pasul următor. În acest moment, cu exemplul nostru, PAGEDOMAIN a fost setat la www.domainName.com.

Codurile rămase verifică șirul de nume de domeniu, ceea ce este înainte (ceea ce înseamnă "www" sau "http: // www.") Și ce este după numele domeniului dvs. (adică ".").

Toate acestea sunt ignorate, astfel încât Flash poate defini numele de domeniu real. domainName.com. În loc să verificați:

 dacă (url! = "http://www.domainName.com/siteFolder/sitePage.html") 

... verificăm:

 dacă (pageDomain! = "domainName.com") 

Principala problemă cu această tehnică este că nu funcționează pentru domenii care au trei părți. De exemplu, domainName.co.uk - acest cod va primi ".co.uk" ca valoare a paginii. Cu toate acestea, este metoda mea preferată, așa cum voi explica în pasul următor.


Pasul 8: Utilitate?

Este posibil să aveți mai multe fișiere pe serverul dvs., pe domenii diferite, această metodă ar fi putut fi făcută astfel încât fișierul să fie blocat pe o singură adresă URL unică și unică, ca mai sus. Dar dacă ați rula fișierul folosind legături profunde, de exemplu, sau subdomenii, fișierul ar înceta să funcționeze, din cauza faptului că link-ul ar fi nevalid pentru cititorul de domenii.

Faptul că este codul dacă (pageDomain! = "domainName.com") este foarte important. Vă va permite să adăugați acest cod la fiecare fișier de pe site-ul dvs., subdomeniu, locație de legătură profundă; atâta timp cât link-ul dvs. este pe acel domeniu, fișierul se va executa și dulapul de domeniu nu va declanșa!

Totuși, poate fi util să vă blocați ceva mai specific decât un nume de domeniu. Să presupunem că găzduiți site-ul dvs. pe o gazdă precum Amazon S3. Apoi, adresa dvs. URL va fi ceva de genul http://yoursitename.s3.amazonaws.com/folder/page.html. Dar altcineva pe Amazon S3 ar putea avea adresa URL http://someoneelse.s3.amazonaws.com/. Ei ar putea încărca SWF pe site-ul lor, și din moment ce SWF ar fi încă pe amazonaws.com dulapul de domenii nu ar fi blocat.

Bacsis

Iată un mic sfat pe care îl puteți iubi. Să presupunem pentru un moment că aveți același conținut pe mai multe nume de domenii și nu doriți să adăugați un cod diferit pentru fiecare dintre domeniile dvs. Puteți efectua verificarea fișierului pentru mai multe domenii simultan cu ușurință.

Faceți cunoștință cu operatorul AND: && Folosind această comandă în interiorul primului checker puteți adăuga cât mai multe domenii pe care le doriți. Lasă-mă să vă arăt cum! :)

Controlul domeniului unic:

(PAGEDOMAIN! = "DomainName.com")

Controlul mai multor domenii:

((pageDomain! = "domainName.com") && (pageDomain! = "mydomain.com") && (pageDomain! = "hisdomain.com")) foarte ușor, nu-i așa??


Concluzie

Ei bine, asta o împachetează. După cum știm cu toții, protecția completă a fișierelor flash nu este garantată niciodată 100%, dar acesta este doar un alt pas, făcând site-ul dvs. mai sigur, mai bun și mai sigur împotriva furtului de fișiere. Nu uitați să criptați fișierele înainte de a le adăuga la server! Vă mulțumim că ați citit acest tutorial, sper că v-ați fost de folos, dacă aveți nevoie de ajutor, nu ezitați să vă lăsați întrebările în secțiunea de comentarii.

Cod