Popis: Existujú situácie, keď nechcete vybrať celý obsah stránky naraz. Napríklad v časti " FAQ."Odobrať len mená otázok. A ak sa osoba zaujíma o odpoveď na určitú otázku, môže otvoriť odpoveď, a keď sleduje, potom blízko. To vytvára pohodlie stránky a jeho kompaktnosť. A Pre toto som pripravený jednoduchý skript na Javascript.umožňuje otvoriť alebo skryť konkrétny text (všeobecne, určité prvky), to znamená skrytý text na javascript.
Výsledok: Kliknite na názov otázky. Ak kliknete znova, odpoveď sa opäť drží.
Otázka 1.
Odpoveď číslo 1.
Otázka # 2.
Odpoveď číslo 2.
Kód JavaScriptu (vložka medzi tagmi a):
HTML kód (vložka medzi tagmi a):
Otázka 1.
Otázka # 2.
Úprimne, nie je potrebné, aby žiadny vývojár, väčšinou ľubovoľný kód JavaScript ľahko pozerať do prehliadača, a preto neexistujú žiadne osobitné dôvody na skrytie vášho kódu. To, tak hovoriť, viditeľné, čo nemôže byť skryté. Avšak, tam sú chlapci, ktorí sú veľmi plachí, aby ukázali svoj kódex pre každého, vzhľadom na to, že táto vlastnosť nemôže kradnúť, hovorí knižnice. Vytvorili ste online službu, konkrétne vytvorili silnú komplexnú knižnicu, ktorá vykonáva určité operácie, žiadne analógy vašej služby, nie je žiadna vaša knižnica, a samozrejme by ste nechceli, aby váš skript videl každý (vývojár) a mohol by robiť na vašom Príklad podobné, ešte lepšie. Samozrejme, nie je nič zlého na tom, čo robí niečo lepšie, je to evolúcia, ale z hľadiska podnikania sú konkurenti len po ruke.
Čo je potrebné na to?
Potrebujete len pochopiť algoritmus a pokúsiť sa to zlepšiť, a odtezvam svoje skúsenosti, keď som skryl skripty. Prvá vec, ktorú potrebujeme, je otestovať úlohu na skutočnom (miestnom) serveri, urobím to s Denwerom lokálny server.ale)Na testovanie vytvorte adresár na serveri.
Chodím virtuálny disk, Mám túto jednotku r, choďte tam ísť do domáceho priečinka
Vytvorte adresár skriptov a vo vnútri vytvoriť www zložku, ako výsledok, budete úspešní: Domov / Script / www / - potom, aby ste si aktualizovali server (reštart Denwer)
b) Vytvorte si súbor index.php - Napríklad, toto je naša hlavná stránka. A tu potrebujeme odstrániť skryté skripty. V tomto adresári tiež vytvorte priečinok "JS".
Pre našu úlohu sa vyžadujú požiadavky AJAX, pre to môžete použiť svoje racionálne funkcie, ale ak váš projekt bude rásť do veľkostí, ktoré budú vyžadovať použitie špeciálnych efektov, udalostí, pripojiť knižnicu a ja sa pripájam vopred jQuery, tak V koreňovom priečinku "JS» Pridať jquery.js.
Potom vytvorte v rovnakom priečinku nový priečinokSkripty, ktoré potrebujeme skryť, budú v ňom uložené. Budem to pomenovať "bezpečnosť":
v)Prijímame kódy náhľadu v index.php
Ako vidíte, je tu blok
PHP predpokladá úlohu čítania vašich skriptov, ktoré budú zablokované na serveri a nemožno ich použiť.
Ale najprv si vytvoríme naše skripty, ktoré chceme skryť.
d) V priečinku zabezpečenia vytvorte script1.js a script2.js, s takýmto obsahom:
Napríklad, stačí! Teraz, aby ich nebolo možné kontaktovať, musíte sa ho opýtať na serveri, to sa robí vďaka file.htaccess.
HTACCESS je konfiguračný súbor nastavený vývojárom, používateľom tohto servera.
HTACCESS má taký obsah:
Potom na žiadosť:
Uvidíte toto:
Tak, váš bezpečnostný priečinok je skrytý pred zvedavými očami, je to neprístupné.
Ak sa pokúsite pripojiť skripty:
Potom v každom prípade, vaše súbory nebudú vykonané, pretože sú globálne skryté serverom
e)Vráťte sa na program PHP v Index.php
Spodná čiara je, že PHP má prístup k všetkým súborom na serveri, bez ohľadu na to, či sú skryté alebo nie, to znamená, že ak sa zaregistrujete:
Potom B. tento prípad Uvidíme obsah nášho skrytého skriptu.
Avšak z iného servera nie je možné vidieť obsah nášho skriptu, a chybové hlásenie sa vráti 500. Toto je naša ruka, takže iné stránky nebudú môcť čítať naše skryté súbory.
e)Takto bude vyzerať konečný výsledok:
A teraz sa zaoberáme, ako to všetko funguje. jQuery vykoná požiadaný dotaz (to pomáha vyhnúť sa otvorom v indexe.php) na serveri "index.php? js \u003d výsledok", ak sa žiadosť z nášho servera (Stross () a adresa nášho Server "http: / / skript" - c na účet tohto príkladu), potom skript skontroluje post-premennú, to znamená adresu nášho skrytého skriptu a dáva textový výsledok. Metóda JQuery Hot () dostane odpoveď vo forme tohto textu, a tento text je možné previesť na prácu Javascriptu, to robí štandardnú cross-tram funkcie eval ();
Nakoniec
Získame náš výsledok, naše skripty nemožno vidieť staticky alebo dynamicky prostredníctvom konzoly prehliadača, ale je ľahké vidieť ich prácu. Tieto skripty a ich funkcie sa ľahko vykonávajú. Je však potrebné dobre uvažovať o uplatňovaní tejto techniky, pretože v tomto prípade sa vydáva otázka výkonu, rýchlosti. Funkcia eval (kód) vývojári JavaScript Je to považované za zlo a odporúča sa použiť svoj analóg novej funkcie ("návrat" + kód), hoci posledný nevie, ako určiť funkcie vnútri, to znamená, že definícia funkcie je zaznamenaná vo vašej premennej , Kód \u003d "Funkčný test () (upozornenie (1);); Test (); ", kód nebude splnený, čo znamená, že eval () sa približuje všetkým prípadom života, pravda má svoje vlastné nuansy, ktoré ešte musia čítať.Či už ste niekedy skryli, aby ste sa schovali pred outsidermi na vašej stránke skriptu, ktorý implementuje nerealistický krásny vzhľad menu alebo vykonávať iné akcie, ktoré by ste nechceli vidieť čoskoro na každú druhú stránku?
Ak áno, metóda opísaná v tomto článku bude pre vás užitočná v spojení s konaním kódexu. Zároveň budem rezervovať naraz, že metóda nie je 100%, ale z väčšiny neprofesionálnych a súčasťou profesionálov bude chrániť.
Teória
Predpokladajme, že máme nojs.php stránku a na ňom je skript tajomstva. Prehliadač a používateľ môžu získať skript zo servera nasledujúcimi spôsobmi:- Načítanie skriptu priamo umiestnené na stránke alebo naložené DOM;
- Zobraziť skript v okne Zdrojový kód stránky;
- Uloženie stránky so všetkými súbormi na pevnom disku;
- Zadanie priamej adresy URL v paneli s adresou.
V druhom a treťom prípade sa neprenáša všetky prehliadače (Chrome, Firefox vydá predtým sťahovaný skript z cache; Opera, tj je skript opäť načítaný, ale bez odosielania referer).
Vo štvrtom prípade sa odkazuje na žiadne z týchto štyroch prehliadačov.
Ak dáte Javascript dynamicky s kontrolou hlavičky referer v dotaze, potom budeme okamžite chrániť pred operou a tj, ale pre CROME a Firefox bude musieť prísť s niečím na nahrávanie. Najprv si stiahneme jeden skript, ktorý zase načíta iný skript, zatiaľ čo obe sťahovanie budú skontrolované pre HTTP referer. Vedecká metóda sa zistilo, že ak dynamicky vytvoríte skript na stránke Document.CreateEeteEeTeement ("Skript") a potom ho odstráňte zo stránky, potom skript bude fungovať ako obvykle, ale nebude sa uložiť.
Prax
nojs.php.
Táto stránka nesie cieľ na stiahnutie script1.phpheader("Content-Type:text/html;charset=utf-8"); ?>