Açıklama: Sayfanın içeriğini bir kerede geri çekmek istemediğiniz durumlar vardır. Örneğin, bölümde " SSS."Sadece soruların adlarını geri çekmek için. Ve eğer bir kişi belirli bir soruya cevapla ilgileniyorsa, cevabı açabilir ve izlerken, sonra kapatın. Bu, sayfanın rahatlığını ve kompaktlığını oluşturur. Ve Bunun için basit hazırladım javaScript'te komut dosyasıbelirli bir metni (genel olarak, belirli elementler) açmanızı veya gizlemenizi sağlar, yani javascript'te Gizli Metin.
Sonuç: Sorunun adına tıklayın. Tekrar tıklarsanız, cevap tekrar yapılır.
Soru 1.
Cevap numarası 1.
Soru 2.
Cevap numarası 2.
Javascript kodu (Etiketler arasında ekle) ve):
HTML kodu (Etiketler arasında ekle) ve):
Soru 1.
Soru 2.
Dürüst olmak gerekirse, herhangi bir geliştirici için gerekli değildir, çoğunlukla herhangi bir JavaScript kodu tarayıcıya kolayca bakın ve bu nedenle kodunuzu gizlemek için özel bir neden yoktur. Bu, konuşması, görünür, ne saklanamaz. Bununla birlikte, bu özelliğin çalınamayacağını göz önünde bulundurarak, kimseye kodlarını göstermek için çok utangaç olan adamlar var. Bir çevrimiçi hizmet yarattınız, özellikle de belirli işlemleri yapan güçlü bir karmaşık kütüphane oluşturdunuz, hizmetinizin analogları yok, kütüphaneniz yok ve doğal olarak komut dosyanızın her birini (geliştiriciyi) görmesini istemeyeceksiniz. Örnek benzer, daha iyi. Tabii ki, daha iyi bir şey yapmanın yanlış bir şey yoktur, evrimdir, ancak iş açısından, rakipler sadece elinizdedir.
Bunun için neye ihtiyaç var?
Yalnızca algoritmayı anlamanız ve geliştirmeye çalışmanız gerekir ve deneyiminizi gizli komut dosyaları yaptığım gibi tekrar alıyorum. İhtiyacımız olan ilk şey, görevi gerçek (yerel) sunucuda test etmektir, bunu denwer ile yapacağım. yerel sunucu.fakat)Test için, sunucuya bir dizin oluşturun.
devam ederim sanal disk, Bu sürücüyüm r, oraya git Ana klasöre git
Script dizini oluşturun ve içinde bir www klasörü oluşturun, sonuç olarak, başarılı olursunuz: Ana Sayfa / Komut Dosyası / WWW / - Bundan sonra, sunucuyu güncellediğinizden emin olun (Denwer'ı yeniden başlatın)
b) Bir index.php dosyası oluşturun - örneğin, bu bizim ana Sayfa Site ve burada gizli komut dosyalarını kaldırmamız gerekiyor. Ayrıca bu dizinde "JS" klasörünü de oluşturun.
Görevimiz için, AJAX istekleri gerekli olacaktır, bunun için rasyonel fonksiyonlarınızı kullanabilirsiniz, ancak projeniz özel efektlerin, olayların kullanımını gerektirecek, kütüphaneyi bağlayacak ve önceden jquery bağlamayı gerektirecek şekilde büyüyecekse "JS» klasörünün kökünde jquery.js ekle.
Sonra aynı klasörde oluşturun yeni dosyaGizlememiz gereken komut dosyaları içinde saklanacaktır. "Güvenlik" olarak adlandıracağım:
içinde)Biz index.php için önizleme kodunu işe alıyoruz.
Gördüğünüz gibi bir blok var
PHP, sunucuda bloke edilecek komut dosyalarınızı okumanın rolünü üstlenir ve bunlara uygulanamaz.
Ama önce, saklamak istediğimiz komut dosyalarımızı oluşturalım.
d) Güvenlik klasöründe, sırasıyla bu içerikle Script1.js ve Script2.js oluşturun:
Örneğin, yeterli! Şimdi, bunlarla temas kurmak mümkün değil, sunucuya sormanız gerekebilir, bu dosyayla ilgilidir. HTACKESS.
HTACCESS, bu sunucunun kullanıcısı, geliştirici tarafından belirlenen bir yapılandırma dosyasıdır.
Htaccess bu tür içeriklere sahiptir:
Bundan sonra, istek üzerine:
Bunu göreceksiniz:
Böylece, güvenlik klasörünüz meraklı gözlerden gizlenir, erişilemez.
Komut dosyalarını bağlamaya çalışırsanız:
Sonra herhangi bir durumda, dosyalarınız, küresel olarak sunucu tarafından gizlendikleri için yürütülmeyecektir.
e)Programın PHP Bloğu'na Dönüştürün.
Alt çizgi, PHP'nin, gizli olup olmadıklarına bakılmaksızın, bu, kayıt olursanız, Sunucudaki tüm dosyalara erişimi vardır.
Sonra B. bu durum Gizli betiğimizin içeriğini göreceğiz.
Bununla birlikte, başka bir sunucudan, komut dosyamızın içeriği görülemez ve bir hata mesajı 500 döndürülür. Bu bizim elimizdir, böylece diğer siteler gizli dosyalarımızı okuyamaz.
e)Sonuç böylece nasıl görünecek?
Ve şimdi her şeyin nasıl çalıştığını iddia ediyoruz. JQuery, "index.php nedir? JS \u003d sonuç" sunucusundaki bir yazı sorgusu (bu, index.php'deki deliklerden kaçınmaya yardımcı olur), sunucumuzdan gelen istek (Strpos () işlevi ve adresi Sunucu "http: / / script" - C bu örneğin hesabı için), daha sonra komut dosyası değişkeni kontrol eder, yani gizli betiğimizin adresini kontrol eder ve bir metin sonucu verir. JQuery Döşemesi () yöntemi bu metin içeriği biçiminde bir yanıt alır ve bu metin bir JavaScript çalışmasına dönüştürülebilir, bu standart çapraz tramvay işlevi ();
Sonuçta
Sonucumuzu alıyoruz, tarayıcı konsolu üzerinden scriptlerimiz statik veya dinamik olarak görülemez, ancak işlerini görmek kolaydır. Bu komut dosyaları ve işlevleri kolayca yürütülür. Bununla birlikte, bu tekniği uygulamak için iyi düşünmek gerekir, bu durumda performans konusu, hız ortaya çıkmıştır. Arasında değerlendirme (kod) işlevi javascript geliştiricileri Kötü olarak kabul edilir ve yeni fonksiyonun analoğunu kullanmanız önerilir ('iade' + kodu), ikincisi içindeki fonksiyonların değişkeninizde kaydedilmesi durumunda, yani , Kod \u003d "fonksiyon testi () (alarm (1);); Test (); ", kodun yerine getirilmeyeceği, ki bu, Değerlendirici () tüm yaşam vakalarına yaklaşır, gerçeğin kendi nüanslarına sahip olan, hala okuması gereken kendi nüansları vardır.Bir menünün gerçekçi olmayan güzel bir görünümünü uygulayan veya her ikinci sitede görmek istemeyeceğiniz diğer eylemleri gerçekleştiren komut dosyası sayfanızdaki yabancılardan gizlemek için sizi saklamak ister misiniz?
Eğer öyleyse, bu makalede açıklanan yöntem, kodun işlemleriyle birlikte sizin için yararlı olacaktır. Aynı zamanda, yöntemin% 100 olmadığı bir kerede rezervasyon yapacağım, ancak profesyonel olmayan profesyonellerin bir kısmından koruyacak.
Teori
NOJS.PHP sayfamız olduğunu varsayalım ve onun üzerinde gizli olması gereken Secret.js komut dosyası. Tarayıcı ve kullanıcı, sunucudan bir komut dosyasını aşağıdaki şekillerde alabilir:- Komut dosyasını doğrudan sayfada yayınlandı veya DOM ile yükleniyor;
- Pencerede komut dosyasını görüntüleyin Sayfa Kaynak Kodu;
- Sabit sürücüdeki tüm dosyalarla bir sayfayı kaydetme;
- Adres çubuğunda doğrudan bir URL girme.
İkinci ve üçüncü durumda, tüm tarayıcılar tarafından iletilmez (Chrome, Firefox önbellekten daha önce indirilmiş bir komut dosyası verecektir; Opera, yani komut dosyasını tekrar yüklenir, ancak referans göndermeden).
Dördüncü durumda, referans bu dört tarayıcılardan herhangi birine aktarılmaz.
Eğer sorgudaki referans başlığını kontrol etmekle birlikte JavaScript verirseniz, o zaman derhal Opera ve IE'den korunacağız, ancak Crome ve Firefox için kayıt için bir şey bulmak zorunda kalacaklar. İlk olarak bir komut dosyasını indireceğiz, bu da başka bir komut dosyasını yükleyecek, her iki indirme HTTP referansı için kontrol edilecektir. Bilimsel yöntem, Doküman'da dinamik olarak bir komut dosyası oluşturursanız, ve sonra sayfadan silin, ardından script her zamanki gibi çalışır, ancak kaydedilmeyecektir.
Uygulama
nojs.php.
Bu sayfa, script1.php dosyasını indirmek için hedefi taşır.header("Content-Type:text/html;charset=utf-8"); ?>