JavaScript: skrivnost skrivamo pred radovednimi očmi. Tak primer Kako videti izvorno kodo strani za odpravljanje napak v skriptu

Nataša 31. oktober 2011 ob 03:10

JavaScript: Skrijte skript pred radovednimi očmi

  • Lesena soba *

Ste kdaj želeli na svoji strani pred tujci skriti skript, ki izvaja nerealno lep videz menija ali izvaja druga dejanja, ki jih ne bi želeli videti kmalu na vsakem drugem mestu?
Če je odgovor pritrdilen, vam bo metoda, opisana v tem članku, koristna skupaj z zamegljevanjem kode. Hkrati bom takoj rezerviral, da metoda ni 100%, lahko pa zaščiti pred večino neprofesionalcev in nekaterimi strokovnjaki.

Teorija

Recimo, da imamo stran nojs.php s skriptom secret.js, ki ga je treba skriti. Brskalnik in uporabnik lahko iz strežnika dobita skript na naslednje načine:
  1. Nalaganje skripta, ki je neposredno postavljen na stran ali naložen z DOM;
  2. Ogled skripta v oknu Izvorna koda strani;
  3. Shranjevanje strani z vsemi datotekami na trdi disk;
  4. Vnos neposrednega URL -ja v naslovno vrstico.
V prvem primeru mora brskalnik prenesti glavo HTTP HTTP_REFERER.
V drugem in tretjem primeru ga ne prenašajo vsi brskalniki (Chrome, FireFox izdajo predhodno naložen skript iz predpomnilnika; Opera, IE znova prenesejo skript, vendar brez pošiljanja napotitelja).
V četrtem primeru referenca ne prenese noben od štirih brskalnikov.
Če izdamo JavaScript dinamično s preverjanjem prisotnosti glave napotitelja v zahtevi, se bomo takoj zaščitili pred Opero in IE, za Crome in Firefox pa se bomo morali odločiti za nekaj zapletenega. Najprej bomo prenesli en skript, ki bo nato prenesel drugega, medtem ko bosta oba prenosa preverjena glede prisotnosti http-refererja. Znanstveno je bilo ugotovljeno, da če na strani document.createElement ("script") dinamično ustvarite skript in ga nato odstranite s strani, bo skript deloval kot običajno, vendar ne bo shranjen.

Vadite

nojs.php
Namen te strani je naložiti script1.php
Poiščite JS
Po 10 sekundah bi morali videti delo skritega skripta v obliki alergije, klikniti povezavo po opozorilu, da se prepričate, da tudi dogodki niso odpadli. Na tej povezavi si lahko ogledate skrit skript
script1.php
Njegova naloga je, da dinamično naloži script2.php, če obstaja referenčna glava. Časovne omejitve se lahko skrajšajo, odvisno od približnega časa izvajanja skritega skripta.
script2.php
Njegova naloga: izdati končni scenarij, če obstaja referenčna glava

Rezultati

Posledično dobimo, da si strani ne moremo ogledati niti v izvorni kodi, niti ne prenesemo ali shranimo skritega skripta s pomočjo preizkušenih štirih brskalnikov. Na splošno si ga lahko ogledate na dva načina:
  • Sledite povezavi, ki vodi neposredno do script2.php in se nahaja na strani našega spletnega mesta;
  • Oblikovanje zahteve HTTP z glavo napotitelja, navedeno v njej.
Učinkovitost skrivanja lahko povečate na naslednje načine:
  1. Z uporabo mod-rewrite zamenjajte script1.js in script2.js, ki gredo na strežnik, s script1.php oziroma script2.php, tako da stran vsebuje znane datoteke js za vsakogar, saj je php presenetljiv;
  2. Naj bo izmišljeni scenarij čim bolj zapleten, verjeten in zmeden, da bo oseba, ki ga bo poskušala razstaviti, veliko trpela, preden bo spoznala, da je bila prevarana;
  3. Zameglitev kode.

Ste kdaj želeli na svoji strani pred tujci skriti skript, ki izvaja nerealno lep videz menija ali izvaja druga dejanja, ki jih ne bi želeli videti kmalu na vsakem drugem mestu?
Če je odgovor pritrdilen, vam bo metoda, opisana v tem članku, koristna skupaj z zamegljevanjem kode. Hkrati bom takoj rezerviral, da metoda ni 100%, lahko pa zaščiti pred večino neprofesionalcev in nekaterimi strokovnjaki.

Teorija

Recimo, da imamo stran nojs.php s skriptom secret.js, ki ga je treba skriti. Brskalnik in uporabnik lahko iz strežnika dobita skript na naslednje načine:
  1. Nalaganje skripta, ki je neposredno postavljen na stran ali naložen z DOM;
  2. Ogled skripta v oknu Izvorna koda strani;
  3. Shranjevanje strani z vsemi datotekami na trdi disk;
  4. Vnos neposrednega URL -ja v naslovno vrstico.
V prvem primeru mora brskalnik prenesti glavo HTTP HTTP_REFERER.
V drugem in tretjem primeru ga ne prenašajo vsi brskalniki (Chrome, FireFox izdajo predhodno naložen skript iz predpomnilnika; Opera, IE znova prenesejo skript, vendar brez pošiljanja napotitelja).
V četrtem primeru referenca ne prenese noben od štirih brskalnikov.
Če izdamo JavaScript dinamično s preverjanjem prisotnosti glave napotitelja v zahtevi, se bomo takoj zaščitili pred Opero in IE, za Crome in Firefox pa se bomo morali odločiti za nekaj zapletenega. Najprej bomo prenesli en skript, ki bo nato prenesel drugega, medtem ko bosta oba prenosa preverjena glede prisotnosti http-refererja. Znanstveno je bilo ugotovljeno, da če na strani document.createElement ("script") dinamično ustvarite skript in ga nato odstranite s strani, bo skript deloval kot običajno, vendar ne bo shranjen.

Vadite

nojs.php
Namen te strani je naložiti script1.php
Poiščite JS
Po 10 sekundah bi morali videti delo skritega skripta v obliki alergije, klikniti povezavo po opozorilu, da se prepričate, da tudi dogodki niso odpadli. Na tej povezavi si lahko ogledate skrit skript
script1.php
Njegova naloga je, da dinamično naloži script2.php, če obstaja referenčna glava. Časovne omejitve se lahko skrajšajo, odvisno od približnega časa izvajanja skritega skripta.
script2.php
Njegova naloga: izdati končni scenarij, če obstaja referenčna glava

Rezultati

Posledično dobimo, da si strani ne moremo ogledati niti v izvorni kodi, niti ne prenesemo ali shranimo skritega skripta s pomočjo preizkušenih štirih brskalnikov. Na splošno si ga lahko ogledate na dva načina:
  • Sledite povezavi, ki vodi neposredno do script2.php in se nahaja na strani našega spletnega mesta;
  • Oblikovanje zahteve HTTP z glavo napotitelja, navedeno v njej.
Učinkovitost skrivanja lahko povečate na naslednje načine:
  1. Z uporabo mod-rewrite zamenjajte script1.js in script2.js, ki gredo na strežnik, s script1.php oziroma script2.php, tako da stran vsebuje znane datoteke js za vsakogar, saj je php presenetljiv;
  2. Naj bo izmišljeni scenarij čim bolj zapleten, verjeten in zmeden, da bo oseba, ki ga bo poskušala razstaviti, veliko trpela, preden bo spoznala, da je bila prevarana;
  3. Zameglitev kode.

Tako smo že ugotovili, da je uporaba skript v JavaScript najpogosteje v internetu. Upam, da veste vsaj na splošno. O tem ne bom govoril.

Najenostavnejše spletno mesto je sestavljeno iz ene ali več spletnih strani (spletnih strani,).

Če želite uporabljati skripte JavaScript, morate nekako vdelati izvorno kodo skripta v spletno stran.

O tem vam bom danes povedal.

Tako lahko skript v telo strani HTML vstavite skoraj povsod.

Če vstavite funkcijo, jo je bolje postaviti v glavo strani. Se pravi, nekje vmes

... .

Skript sam je postavljen med oznake

Tukaj kot parameter začetne oznake

Kot sem rekel, lahko skript vstavite kjer koli na strani. Če pa to storite med oznakami, bo uporabniku vidna izvorna koda skripta. To seveda na splošno ni potrebno.

Pošiljati sporočila izvorna koda brskalnik ni prikazal, mora biti izvorna koda zapisana kot označevalni komentar HTML, to je med znaki

Se pravi, takole:

Obstaja pa še en trik. Zlasti neumni brskalniki ne razumejo simbola ->. Zato je zaželeno, da koda uporabniku ni vidna v vseh brskalnikih, zato priporočamo, da to storite:

OPOMBA
Skoraj vsi sodobni brskalniki bodo delovali dobro, tudi če v oznaki HTML ne uporabite znakov komentarjev. Vendar je bolje, da to storite, saj lahko uporabnik na koncu poseže po starem brskalniku.

No, za primer preproste strani HTML z vgrajenim JavaScript:

Ustvari besedilno datoteko, spremenite njeno razširitev (ne sme biti txt, ampak htm ali html), vstavite zgornje besedilo in shranite.

Nato dvokliknite datoteko, da jo zaženete. Odprl se bo vaš privzeti brskalnik in prikazalo se bo sporočilo »Moj prvi skript na spletni strani!«.

Kot ste morda uganili, se lahko strani HTML in v njih vdelani skripti izvajajo na uporabnikovem računalniku, tudi če nimajo internetne povezave. To pomeni da ...

POZOR!
Z JavaScriptom lahko pišete programe, ki se izvajajo na uporabnikovem računalniku. Poleg tega sploh ni važno kaj je njegov operacijski sistem! Glavna stvar je, da njegov brskalnik podpira pisanje skriptov. In ne potrebujete posebnih razvojnih orodij, ki stanejo nori denar - dovolj je le urejevalnik besedil!

To je zelo preprosto - z desno miškino tipko kliknite in v kontekstnem meniju izberite ustrezno postavko. Besedilo se lahko razlikuje glede na uporabljeni brskalnik: in Mozilla Firefox to se imenuje "Original", v Apple Safari - "View Source", v Google chrome- "Ogled kode strani", v Operi - "Izvorna koda", v internet Explorer- "Ogled kode HTML".

Izvorna koda strežniških skriptov, ki tvorijo kodo HTML strani z običajno nastavljeno stranjo strežnika programsko opremo, ne boste mogli dobiti preproste zahteve. Izvorno kodo skriptov PHP ali Perl si lahko ogledate samo tako, da prenesete njihove datoteke s protokolom FTP ali prek upravitelja datotek nadzorne plošče za gostovanje ali sistema za upravljanje vsebine. Takšne datoteke lahko odprete z običajnim urejevalnik besedil.

Izvorno kodo skriptov na strani odjemalca, ki se izvajajo neposredno v brskalniku (na primer JavaScript), si lahko ogledate tako, da pridobite njihove datoteke iz predpomnilnika brskalnika. In še lažje - stran z vsemi spremljevalnimi datotekami shranite na določeno mesto. V tem primeru vam ni treba izkopati vsega, kar je shranjeno v predpomnilniku. Če želite to narediti, v katerem koli brskalniku pritisnite kombinacijo tipk CTRL + S in nato v polju »Vrsta datoteke« izberite »Dokončaj spletno stran«. Datoteke z razširitvijo js, ​​ki vsebuje izvorno kodo skripta, lahko odprete tudi z običajnim urejevalnikom besedil.

Izvorne kode filmov Flash, ki jih brskalnik prenese na vaš računalnik, ni tako enostavno videti. Brskalnik ne prejme izvorne kode, ampak le prevedeno različico - izvedljivo kodo. Vendar pa obstajajo programi za dekompilacijo, ki lahko izvedejo postopek obratne pretvorbe. Na primer, Flash Decompiler Trillix se vključi v vaš brskalnik in vam omogoča, da izvlečete objekt Flash s strani in ga shranite. Ko odprete bliskavico v dekompilerju, boste dobili dostop do njenih posameznih komponent - slik, skriptov, zvokov itd. Seveda ta koda ne bo v celoti ustrezala avtorjevim virom, vendar le z zadostno stopnjo natančnosti za delovanje.

"Vir" se najpogosteje imenuje koda programa v človeško berljivem (na visoki ravni) programskem jeziku. S to kodo lahko spreminjate program (skript, flash film, java aplikacijo, aplikacijski program itd.). Avtor ali distributer programa se sam odloči, ali bo distribuiral izvorno kodo skupaj s končnim izdelkom. Obstaja celoten razred aplikacij, ki se distribuirajo "odprtokodno", izvorne kode drugih programov (na primer skriptov JavaScript ali strani HTML) po definiciji ni mogoče skriti, izvorna koda drugih programov pa je predmet do avtorskih pravic.

Navodila

Pridobite izvorno kodo odprtokodne aplikacije s spletnega mesta avtorja ali distributerja te programski izdelek... Naslov spletnega mesta lahko običajno poiščete v razdelku menija z imenom "Pomoč", če v njem izberete element "Vizitka".

Z desno miškino tipko kliknite spletno stran, če želite dostopati do njene izvorne kode. V katerem koli brskalniku bo spustni kontekstni meni vseboval ukaz vir vira, čeprav se lahko njegovo besedilo nekoliko razlikuje. Lahko tudi brez kontekstnega menija - kombinacija tipk ctrl + u podvoji klic na ukaz vir vira. Nekateri brskalniki imajo vgrajena orodja za brskanje (Mozilla Firefox, Google Chrome), drugi za to uporabljajo zunanje programe - najpogosteje Notepad. Tako pridobljen vir strani lahko shranite v datoteko.



Povezani članki: