Opis: Postoje situacije kada ne želite povući cijeli sadržaj stranice odjednom. Na primjer, u odjeljku " FAQ."Da povučemo samo imena pitanja. A ako je osoba zainteresirana za odgovor na određeno pitanje, može otvoriti odgovor, a kad ga gleda, tada se izbliži. To stvara pogodnost stranice i njegovu kompaktnost. Za to sam pripremio jednostavno skripta na JavaScript-u.što vam omogućava otvoriti ili sakriti određeni tekst (uopšte, određene elemente), to jest skriveni tekst na JavaScript-u.
Rezultat: Kliknite na ime pitanja. Ako ponovo kliknete, odgovor će se ponovo prilijepiti.
Pitanje broj 1.
Odgovor broj 1.
Pitanje br. 2.
Odgovor broj 2.
JavaScript kod (umetak između oznaka i):
HTML kod (umetak između oznaka i):
Pitanje broj 1.
Pitanje br. 2.
Iskreno, nije potrebno za bilo koji programer, uglavnom svaki JavaScript kod lako izgleda u pretraživaču, a zato nema posebnih razloga za skrivanje vašeg koda. Ovo, da tako kažem, vidljivo, ono što ne može biti skriveno. Međutim, postoje momci koji su vrlo stidljivi da pokažu svoj kôd bilo kome, s obzirom na to da ova imovina ne može krade, govoreći biblioteke. Napravili ste internetsku uslugu, posebno kreiranu moćnu složenu biblioteku koja obavlja određene operacije, nema analoge vaše usluge, nema vaše biblioteke, a prirodno ne biste željeli da se vaš scenarij ne bi željeli vidjeti na vašem pisanju (programera) i moglo bi se vidjeti na vašem Primjer sličan, još boljim. Naravno, nema ništa loše u tome da učinimo nešto bolje, to je evolucija, ali sa stanovišta poslovanja, takmičari su samo pri ruci.
Šta je potrebno za to?
Morate samo razumjeti algoritam i pokušati ga poboljšati, i prepričavam vaše iskustvo dok sam učinio skrivene skripte. Prvo što nam treba je da testiramo zadatak na stvarnom (lokalnom) poslužitelju, učinit ću to sa DENWER-om lokalni poslužitelj.ali)Za testiranje kreirajte direktorij na poslužitelju.
Ja idem dalje virtualni disk, Imam ovaj pogon r, idite tamo u mapu Početna
Kreirajte direktorij skripte i iznutra Stvorite WWW mapu, kao rezultat, uspjet ćete: Početna / Script / www / - nakon toga, obavezno ažurirajte poslužitelj (ponovno pokrenite DENWER)
b) Kreirajte datoteku index.php - na primjer, ovo je naša glavna stranica Web lokacija i evo moramo ukloniti skrivene skripte. Također kreirajte mapu "JS" u ovom direktoriju.
Za naš zadatak bit će potreban AJAX zahtjevi, za to možete koristiti svoje racionalne funkcije, ali ako će vaš projekt rasti na veličinama koji će zahtijevati upotrebu posebnih efekata, događaja, povezivanje biblioteke, pa se povezujem u unaprijed jQuery U korijenu mape "JS" Dodaj jquery.js.
Zatim kreirajte u istoj mapi nova mapaSkripte koje trebamo sakriti bit će pohranjene u njemu. Imenuću ga "Security":
u)Zapošljavamo kôd za pregled u index.php
Kao što vidite, postoji blok
PHP preuzima ulogu čitanja vaših skripti koje će biti blokirane na poslužitelju i ne može se primijeniti na njih.
Ali prvo napravimo svoje skripte koje želimo sakriti.
d) U sigurnosnoj mapi Kreirajte skriptu1.js i skripta2.JS, sa takvim sadržajem, respektivno:
Na primjer, dovoljno je! Dakle, tako da ih je nemoguće kontaktirati, morate ga pitati na poslužitelju, to se radi zahvaljujući datoteci.htaccess.
Htaccess je konfiguracijska datoteka koju je postavio programer, korisnik ovog servera.
Htaccess ima takav sadržaj:
Nakon toga, na zahtjev:
Vidjet ćete ovo:
Dakle, vaša sigurnosna mapa je skrivena od znatiželjnih očiju, to je nepristupačna.
Ako pokušate povezati skripte:
Zatim u svakom slučaju, vaše datoteke neće biti izvršene, jer su na globalnoj razini skriveni od strane poslužitelja
e)Povratak na program PHP programa u index.php
Donja linija je da PHP ima pristup svim datotekama na poslužitelju, bez obzira da li su skrivene ili ne, odnosno ako se registrirate:
Zatim B. ovaj slučaj Vidjet ćemo sadržaj našeg skrivenog skripta.
Međutim, sa drugog poslužitelja, sadržaj našeg skripta se ne može vidjeti, a poruka o grešci vraća se 500. Ovo je naša ruka, tako da druga mjesta neće moći čitati naše skrivene datoteke.
e)Ovako će izgledati krajnji rezultat:
A sada se bavimo kako sve radi. jQuery izvrši post upit (ovo pomaže u izbjegavanju rupa u Index.php) na serveru "Index.php? JS \u003d rezultat", postoji ček, ako je zahtjev iz našeg poslužitelja (STRPOS () funkcija i adresa naše Server "HTTP: / / Script" - C za račun ovog primjera), tada skripta provjerava post-varijablu, odnosno adresu našeg skrivenog skripta i daje tekstualni rezultat. jQuery Gotovo () metoda dobiva odgovor u obliku ovog tekstualnog sadržaja, a ovaj tekst se može pretvoriti u JavaScript koji radi, to čini standardnu \u200b\u200bfunkciju poprečnog tramvaja eval ();
Na kraju
Dobili smo svoj rezultat, naše skripte se ne mogu vidjeti statički ili dinamično putem konzole pregledača, ali lako je vidjeti njihov rad. Ove skripte i njihove funkcije se lako izvršavaju. Međutim, potrebno je dobro razmišljati da primijenite ovu tehniku, kao u ovom slučaju, izdanje performansi, brzina se podiže. Eval (kod) funkcionira među javaScript programeri Smatra se zlim, a preporučuje se korištenje analogne nove funkcije ("povratak" + kod), mada ne zna kako odrediti funkcije iznutra, odnosno ako je definicija funkcije evidentirana u vašoj varijabli , Kod \u003d "Funkcijski test () (upozorenje (1);); test (); ", kôd neće biti ispunjen, što znači da eval () približava svim slučajevima života, istina ima vlastite nijanse, što još uvijek treba čitati.Hoćete li da se ikad sakrite da se sakrivate od stranaca na svojoj scenarijskoj stranici, koja provodi nerealno prekrasan izgled menija ili izvođenje drugih radnji koje ne biste željeli vidjeti na svakoj drugoj web lokaciji?
Ako je to slučaj, metoda opisana u ovom članku bit će vam korisna u kombinaciji sa postupkom Kodeksa. Istovremeno ću rezervirati odjednom da metoda nije 100%, već od većine profesionalnih i dijela profesionalaca, zaštitit će se.
Teorija
Pretpostavimo da imamo nož.php stranicu, a na njemu tajni.JS skripta koju treba sakriti. Browser i korisnik mogu dobiti scenarij sa servera na sljedeće načine:- Učitavanje skripte direktno objavljene na stranici ili učitava Dom;
- Pogledajte skriptu u prozoru Izvorni kod stranice;
- Spremanje stranice sa svim datotekama na tvrdom disku;
- Unošenje direktnog URL-a u adresnoj traci.
U drugom i trećem slučaju, ne prenose se svi preglednici (Chrome, Firefox iznosit će prethodno preuzetu skriptu iz predmemorije; Opera, tj. Ponovo je učitava skriptu, ali bez slanja referera).
U četvrtom slučaju, referer se ne prenosi na bilo koji od ova četiri preglednika.
Ako JavaScript dinamički date provjeru zaglavlja filtera u upitu, odmah ćemo se zaštititi od opere i tj., Ali za Crome i Firefox će morati smisliti nešto za snimanje. Prvo ćemo preuzeti jednu skriptu, što će zauzvrat učitati još jedan scenarij, dok će oba preuzimanja biti provjerena za HTTP relej. Namjenska metoda otkriva se da ako dinamički kreirate skriptu na dokumentu.Craeteelement Page ("Script"), a zatim ga izbrišite sa stranice, a zatim skripta će raditi kao i obično, ali neće biti spremljena.
Vježbati
nojs.php.
Ova stranica nosi cilj preuzimanja skripta1.phpheader("Content-Type:text/html;charset=utf-8"); ?>