Benim usta seyahat notlarım. Parola ile basit erişim kısıtlaması

  • 04.05.2019

Bir siteyi Apache sunucusunu kullanarak korumak, en basit ve aynı zamanda oldukça güvenilir yöntemlerden biridir. Bu durumda, güvenlik stratejisini iyice düşünmenize, tasarlamanıza ve kod halinde uygulamanıza gerek yoktur. Ayrıca, oluşturmak için iyi sistem koruma, bu konuda yeterli niteliklere sahip olmanız gerekir. Apache WEB sunucusunun yerleşik korumasını kullanarak görevinizi büyük ölçüde basitleştirirsiniz - tek yapmanız gereken basit bir işlem dizisini izlemektir ve siteniz yeterince korunacaktır. Bu makale, yapmanız gereken adımları ve eylemleri detaylandıracaktır. Ve yazının sonunda .htaccess dosyalarına örnekler verilecektir.

Temel Kimlik Doğrulama

Bu makale en basit ve uygun fiyatlı yol koruma - temel kimlik doğrulama.

Yorum

Kimlik doğrulama, birinin tam olarak iddia ettiği kişi olduğunun doğrulandığı süreçtir. Tipik olarak, doğrulama bir kullanıcı adı ve şifre girmeyi içerir.

Temel kimlik doğrulamanın nasıl çalıştığına bir göz atalım.
Bir ziyaretçi korumalı bir dizine eriştiğinde, Apache sunucusu isteğe yanıt olarak bir 401 başlık (401 kimlik doğrulaması gerekli başlık) gönderir. Ziyaretçinin tarayıcısı bir 401 başlığını kabul eder ve kullanıcı adı ve şifre alanlarını içeren bir pencere görüntüler. Kullanıcı adı ve şifreyi girdikten sonra, bu veriler sunucuya geri gönderilir ve sunucu, kullanıcı adının içinde olup olmadığını kontrol eder. özel liste, ve doğruluk için parola. Her şey doğruysa, ziyaretçi kaynağa erişebilir. Başlıkla birlikte, tarayıcıya kapsam adı verilen özel bir ad gönderilir. Tarayıcı, her istekte bunları iletmek için yalnızca kullanıcı adını ve şifreyi değil, aynı zamanda kapsamı da önbelleğe alır. Bu nedenle, kullanıcı adı ve şifre korumalı dizine yalnızca bir kez girilir. Aksi takdirde, korumalı dizine yapılan her istekte girilmeleri gerekirdi. Kimlik doğrulama parametrelerinin (ad, parola, bölge) önbelleğe alınması genellikle yalnızca tek bir oturumda gerçekleşir.

Yorum

Temel kimlik doğrulama, kullanıcı adını ve parolayı ağa gönderir. açık form tüm oturum boyunca ziyaretçi korumalı dizinle çalışırken. Bir bilgisayar korsanı bu bilgileri kullanarak araya girebilir. ağ analizörü paketler. Bu tip kimlik doğrulama gerektiğinde kullanılmamalıdır gerçek koruma ticari olarak değerli bilgiler.

Yorum

Apache web sunucusu başka bir koruma türünü destekler - özet kimlik doğrulama. Özet kimlik doğrulaması sırasında, parola düz metin olarak değil, MD5 algoritması kullanılarak hesaplanan bir karma kod biçiminde iletilir. Bu nedenle, trafik taranırken parola ele geçirilemez. Ancak ne yazık ki, özet kimlik doğrulamasını kullanmak için sunucuya özel bir modül yüklemeniz gerekir - mod_auth_digest. Ve bu sadece sunucu yönetiminin yetkinliğindedir. Ayrıca, yakın zamana kadar, özet kimlik doğrulaması her türlü tarayıcı tarafından desteklenmiyordu.

Web sitesi güvenliği kolaylaştırıldı

Siteyi korumak için aşağıdaki işlem sırasını gerçekleştirmeniz gerekir: şifreli bir dosya oluşturun, sunucuda yeniden yazın, bir .htaccess dosyası oluşturun ve ayrıca sunucuda yeniden yazın.
Koruma organizasyonu için gerekli olacaktır.

  1. Web sitesi ve buna FTP erişimi.
  2. .htpaccess dosyaları oluşturma ve bunlarla koruma düzenleme hakları.
  3. htpasswd.exe şifre üreticisi yardımcı programı

Sunucudaki .htaccess dosyasının çalışmasını kontrol etme

.htaccess dosyalarını kullanarak koruma düzenleme haklarına sahip olup olmadığınızı kontrol etmek için, Metin dosyası.htaccess adıyla (ilk karakter bir noktadır, uzantı yoktur).

Yorum

Far, WindowsCommander, TotalCommander, vb. kabuklardaki yerleşik düzenleyiciyi ve ayrıca Not Defteri düzenleyicisini kullanarak .htaccess dosyaları oluşturmak uygundur.

Yorum

Böylece not defteri otomatik olarak yerini almaz .txt uzantısı, kaydet iletişim kutusunda, "dosya türü" açılır listesinde "Tüm dosyalar" seçeneğini seçin.

Pirinç. 1. .htaccess dosyalarını not defterine kaydetme

.htaccess'in çalışıp çalışmadığını kontrol etme

AuthType Temel
Yetki Adı yöneticisi
geçerli kullanıcı gerektirir

Ardından FTP erişimi ile sitedeki .htaccess dosyasını korumak istediğiniz dizine yeniden yazın.

Yorum

.htaccess dosyalarının etkisi sadece dosyanın bulunduğu dizine değil, aynı zamanda bir seviye daha aşağıda bulunan tüm alt dizinlere de uzanır.

Ardından, tarayıcı aracılığıyla bu dizine erişin. Yönetici dizinini koruyorsanız ve .htaccess dosyasını orada yeniden yazdıysanız, kontrol etmek için girmelisiniz. adres çubuğu tarayıcı sonraki url: http://www.mysite.ru/admin/.

Bundan sonra, aşağıdaki şekilde olduğu gibi bir kullanıcı adı ve şifre girmeniz istenirse, test başarılı olmuştur ve dizini korumaya devam edebilirsiniz.

Pirinç. 2. Oturum açma ve parola giriş penceresi

Her şeyi doğru yaptıysanız, ancak parola giriş penceresi görünmüyorsa, bu, sunucu ayarlarının dizinleri korumak için .htaccess dosyalarını kullanmanızı yasakladığı anlamına gelir. Bu sorunu çözmek için sunucu yönetimine başvurmanız veya başka bir koruma türü kullanmanız gerekir.
.htaccess dosyalarının çalıştığı tespit edildikten sonra, az önce yazdığımız test dosyası siteden kaldırılmalıdır.

Yorum

Herhangi bir nedenle .htaccess dosyasını silemiyorsanız, boş bir .htaccess dosyası oluşturun ve sunucudaki dosyayı onunla değiştirin.

passwords.htpasswd ile dosya oluşturma

Parola dosyası, htpasswd.exe yardımcı programı tarafından oluşturulur. Makinenizde Apache web sunucusu kuruluysa, bu yardımcı program kurulu dizinde bulunur Apaçi-alt dizinde yemek çöp Kutusu.

Yorum

Apache kurulu değilse, htpasswd.exe yardımcı programını indirebilirsiniz.

htpasswd.exe yardımcı programıyla çalışmak için bir komut satırı arabirimine ihtiyacınız vardır. Far, WindowsCommander vb. programların komut satırı arayüzü vardır. Burada, Windows 2000/XP vb. teslimatlarında bulunan cmd yardımcı programını kullanarak komut satırıyla çalışmayı ele alacağız.
Tıklamak "Başlat"->"Çalıştır", giriş satırına girin cmd ve bas TAMAM. CMD yardımcı programı penceresi açılacaktır.

Pirinç. 3. CMD yardımcı programı penceresi

Ardından, htpasswd.exe yardımcı programının bulunduğu dizine gitmeniz gerekir. Apache sunucusunun c:/Apache2 dizinine kurulduğunu varsayalım, ardından komut satırına şu komutu girin: cd../../apache2/bin ve enter tuşuna basın.


c:Apache2in dizinine geçtiniz. Şimdi şifreli bir dosya oluşturmak için bir komut vermeniz gerekiyor. Komut satırına şunu girin:

htpasswd -cm .htpasswd yöneticisi

  • -cm yardımcı programın anahtarlarıdır. Anahtar c - neyin yaratılması gerektiğini gösterir yeni dosyaşifreler ile. Bu ada sahip bir dosya ise zaten var, üzerine yazılacaktır. Anahtar m - MD5 şifrelemesini tanımlar.
    .htpasswd - parola dosya adı (herhangi bir ad kullanabilirsiniz).
    admin - sitenin kısıtlı alanına erişmesine izin verilecek olan ziyaretçinin adı.

Yanıt olarak, bir parola girmeniz ve tekrarlamanız istenmelidir. Her şey doğruysa, sonunda bir mesaj görünecektir: Kullanıcı admin için şifre ekleniyor. Ve .htpasswd dosyası, kullanıcı adının ve şifresinin karma kodunun bulunduğu bir satırın bulunduğu c: Apache2in dizininde görünecektir. Aynı .htpasswd dosyasına başka bir kullanıcı eklemek için, htpasswd.exe yardımcı programını çalıştırmak için komuttan -c anahtarını kaldırın.

htpasswd -m .htpasswd yönetici



Yorum

Parola dosyası oluşturulmamışsa, işletim sisteminizde bazı yardımcı program anahtarları desteklenmiyor olabilir. Örneğin, m tuşu bazen desteklenmez. Bu durumda htpasswd -c .htpasswd admin yazmanız gerekir.
Yardımcı programın anahtarlarını ve parametrelerini görüntülemek için htpasswd.exe /? Size arayüzün bir açıklaması verilecektir.

Böylece şifre dosyası oluşturulmuştur. Şimdi sunucuya yeniden yazmanız gerekiyor. Ziyaretçilerin erişemeyeceği sitenin kök dizininin üzerine şifreli dosyalar koymak çok arzu edilir.
Bu mümkün değilse, şifre dosyaları korunmalıdır. Bu, .htaccess dosyaları kullanılarak yapılabilir. Dosyaları parolalarla korumak için aşağıdaki listede gösterilen satırlarla bir dosya oluşturun.

.htpasswd Dosyalarını Koruma


herkesten inkar

Ve şifre dosyanızın bulunduğu dizine koyun. Artık site ziyaretçileri ona erişemeyecek.
Parola dosyası oluşturulmuş ve yetkisiz erişime karşı korunmuştur. Şimdi korumalı dizinde kullanılacak bir .htaccess dosyası oluşturmanız gerekiyor.

.htaccess dosyası oluşturma

Bir dizini korumak için aşağıdaki yönergeler kullanılabilir:

  • AuthType - Kullanılan kimlik doğrulama türü. Temel kimlik doğrulama için bu yönerge şu değere sahip olmalıdır: Temel
    AuthName - Kimlik doğrulama kapsamının adı. Ziyaretçinin nereye erişmeye çalıştığını anlamasına yardımcı olan metin. Örneğin, şöyle diyebilir: "Özel bölge. Yalnızca yönetici için!"
    AuthUserFile - parola dosyasının yolu (.htpasswd).
    AuthGroupFile - varsa, grup dosyasının yolu.
    Gerekli - Kısıtlı bir alana erişim elde etmek için karşılanması gereken bir veya daha fazla gereksinim.

Örnek bir .htaccess dosyası

AuthType Temel
AuthName "Özel bölge. Yalnızca yönetici için!"
AuthGroupFile /usr/host/mysite/group
AuthUserFile /usr/host/mysite/.htpasswd
grup yöneticileri gerektirir

AuthUserFile ve AuthGroupFile yönergeleri daha ayrıntılı olarak açıklanmalıdır. Sunucu kökünden ilgili dosyalara giden mutlak yolları içerirler.

Dikkat!

Göreceli yollar çalışmaz!

Sunucu kökünden yolu sunucu yönetimine sorarak öğrenebilir veya kendiniz çözmeye çalışabilirsiniz. Bunu yapmak için phpinfo() işlevini çalıştırın. Ekranda mor bir tablo belirecektir. Sunucu kökünden gelen mutlak yolun değeri, değişkenlerde görüntülenebilir: doc_root, open_basedir, DOCUMENT_ROOT.
Require yönergesi, özel bir alana kimlerin erişmesine izin verildiğini belirler. Örneğin,

Yaptığınız sitenin herkese açık olmaması gerektiği, ancak sınırlı bir insan çevresi için bir tür hizmet olarak kullanıldığı durumlar vardır. Elbette PHP aracılığıyla kimlik doğrulamayı ödüllendirebilirsiniz, ancak neredeyse temel yol– Apache kullanarak sitedeki klasörü kapatın. Örneğin, dosyalarla .htaccess ve .htpasswd. Şimdi bunun hakkında konuşacağız.

Parolalarla bir .htpasswd dosyası oluşturun

Şifre belirlemek için önce bir dosya oluşturmamız gerekiyor. .htpasswd. Bu, hem Linux hem de Windows sürümlerinde bulunan htpasswd yardımcı programı kullanılarak yapılır.

htpasswd -c .htpasswd yönetici

Anahtar -ile yeni bir parola dosyasının oluşturulması gerektiğini belirtir. .htpasswd- oluşturulan dosyanın adı. yönetici– sitenin kapalı kısmına erişmesine izin verilecek kullanıcının oturum açması. Yardımcı programı herkesle çalıştırdıktan sonra doğru parametreler, bir şifre girmeniz ve tekrarlamanız istenecektir. .htaccess dosyanız zaten oluşturulmuşsa ve ona yeni bir kullanıcı eklemek istiyorsanız, yardımcı programı çalıştırın, dosyayı anahtarsız parolalarla belirtin. -c.

Oluşturulan dosya bir metin dosyasıdır ve iki nokta üst üste ile ayrılmış kullanıcı adı ve parola karmasını içerir. Varsayılan karma algoritması DES'dir. Ancak bunu değiştirebilir ve MD5 algoritmasını bir anahtarla kullanabilirsiniz. -m, ancak en iyi yol SHA algoritmasını kullanarak( -s'yi değiştir).

.htaccess ile web sitesi koruması

Böylece dosya oluşturulur, ardından .htaccess dosyasını sitenin kök dizinine ekliyoruz veya mevcut bir dosyaya ekliyoruz. aşağıdaki satırlar:


# .htaccess dosyasına erişimi kapatın
izin ver, reddet
hepsinden reddet
Tümünü Karşıla

# .htpasswd dosyasının konumunu belirtin, kimlik doğrulamayı etkinleştirin
AuthUserFile /etc/apache2/passwd/.htpasswd
AuthName "Parola Korumalı Alan"
AuthType Temel
Geçerli kullanıcı gerektir

Parametre Yetki Kullanıcı Dosyası noktalar kesin yol dosyalamak .htpasswd. Benim bilmediğim bir nedenle, gördüğüm birçok kılavuzda şifre dosyası nedense ev dizini kullanıcı. Bu dosyayı sitenin kök dizininde değil, ana dizininizde saklamanızı tavsiye etmem.

Dosyayı oluşturup dosyayı yerleştirdikten sonra .htaccess sitenin kökünde apache işlemini yeniden yüklemek güzel olurdu.

Sitenin arama motorları tarafından indekslenmesinden kapatılmasının iyi olacağı gerçeğine de dikkatinizi çekmek isterim. Bunu yapmak için sitenin kök dizininde bir dosya oluşturun robots.txt aşağıdaki içerikle:


Kullanıcı aracısı: *
izin verme: /

Bunun üzerine sanırım bu yazıyı bitirebiliriz. Konuyla ilgili başka sorularınız varsa, onları yorumlarda bekliyorum.

Şahsen, site klasörlerimi parolayla korumak için .htaccess kullanıyorum. İyi şifre- bir güvenlik garantisi, bu bir aksiyomdur!

Önce bir örneğe bakalım ve sonra bunun ne anlama geldiğini açıklayalım:

geçerli kullanıcı gerektirir

Bu dosya şifreyi koymak istediğimiz dizine yerleştirilmelidir.

Direktif Yetki Adışifre istendiğinde bir mesaj görüntüler, tüm mesajlar tek satırda yazılmalıdır, direktifin sözdizimi önemsizdir:

AuthName "METİNİ GÖR"

Direktif Yetki Türü kimlik doğrulama türünü seçer. Aşağıdaki türler mümkündür: Temel veya sindirmek. İkincisi, bazı tarayıcılar tarafından desteklenmeyebilir, bu nedenle kullanılması önerilmez.

AuthType Temel | sindirmek

Yetki Kullanıcı Dosyası kullanıcı kimlik doğrulaması için parolaları olan dosyanın adını belirtir (bu dosyadaki parolalar şifrelenecektir). Parola dosyasının yolu, web sunucusunun kök dizinine göre belirlenir. Parola dosyasını, kullanıcıların erişemeyeceği bir klasörde saklayın - (bu dosyayı web sitenizin hiyerarşisinin dışına yerleştirmeniz önerilir - bu çok önemli nokta, çünkü onu kırmak oldukça zor olacaktır, çünkü güvenliğiyle ilgili tüm sorumluluğu güvenlik duvarları ve koruma sistemleri olan bir Barındırma sağlayıcısına devredeceksiniz).

Oluşturmak verilen dosya iki şekilde mümkündür. yüklediyseniz işletim sistemi Windows aileleri bu dosyayı oluşturan bir programı indirebilirsiniz. Veya sunucuya SSH üzerinden bağlanın ve htpasswd yardımcı programını kullanın. Veya teslimatta bulunan aynı yardımcı programı kullanın Apache web sunucusu(kuruluysa, değilse, Win için indirin), komutu kullanarak Windows dizeleri giriş: htpasswd.exe -cm .htpasswd yöneticisi , nerede:

Cm, MD5 kullanarak dosya oluşturma komutlarıdır;

htpasswd, oluşturulacak dosyanın adıdır;

admin kullanıcı adıdır.

Başladıktan sonra, bir şifre girmeniz ve onaylamanız istenecektir. Bu bir dosya oluşturacak .htpasswd bu içerik gibi bir şey:

yönetici:$Nisan1$9o0…..$3nAi6rAX1RtHDzL7PPW/i/

giriş ile eşleşen - yönetici ve şifre - parola.

Bu arada, bu şekilde sadece dizinleri değil, aynı zamanda bireysel dosyalar veya dosya grupları. Bir kullanıcı eklerken mevcut dosya emretmek -santimetre olarak değiştirilmesi gerekiyor -m.

Sunucuya SSH üzerinden bağlanma ve htpasswd yardımcı programını parametresiz kullanma durumunda şunları göreceğiz:

kjan~#htpasswd

htpasswd [-cmdps] şifre dosyası kullanıcı adı

htpasswd -b passwordfile kullanıcı adı şifresi

C Yeni bir dosya oluşturun.

Bu komut için tüm seçenekleri burada ele almayacağız, ancak ayrıntıları çalıştırarak kendiniz okuyabilirsiniz. htpasswd içinde unix kabuğu veya ilgili Apache dokümantasyon sayfasına başvurarak.

Yani, başlangıçta henüz bir şifre dosyamız yok ve onu oluşturmamız gerekiyor:

kjan ~ # htpasswd -c yetki dosyası test1

Yeni şifrenizi tekrar yazınız

Kullanıcı testi1 için şifre ekleme

Bu işlemi yaptıktan sonra htpasswd bir dosya oluşturacak şifreler kullanıcının olacağı test1 ve şifreli şifresi:

kjan~$cat.authfile

test1:zgco1KREjBY8M

Ve şimdi başka bir kullanıcı eklemek istiyoruz. Zaten şifreli bir dosyamız olduğundan, anahtarı kullanmayacağız "-c" :

kjan~ # htpasswd .authfile test2

Yeni şifrenizi tekrar yazınız:

Kullanıcı testi2 için şifre ekleme

kjan~ $ cat .authfile

test1:zgco1KREjBY8M

test2:eN3uA6t0kzV1c

Dizin parola yönergelerinin açıklamasına dönelim. Direktif Gerekmek erişebilecek kullanıcıları tanımlar

USER_NAME gerektir | geçerli kullanıcı

işaret etmek geçerli kullanıcı parola dosyasında listelenen tüm kullanıcılara erişim izni verirsiniz.

AuthName "Korumalı alan, yetkilendirme gerekiyor"

AuthUserFile /home/t/test/.authfile

geçerli kullanıcı gerektirir

Bu tür erişim kısıtlaması ile şifrelerin iletişim kanalları üzerinden açık metin olarak iletildiği ve bazı durumlarda davetsiz misafirler tarafından ele geçirilebileceği unutulmamalıdır. Bu nedenle, güvenlik nedeniyle, web sitesinin kısıtlı alanlarına erişimin güvenli bir SSL bağlantısı üzerinden düzenlenmesi önerilir.

Standart Apache modüllerini kullanarak, erişmeye çalışırken bir kullanıcı adı ve şifre talep etmek mümkündür. belirli sayfa veya dizin. Kullanıcı adı ve şifre özel bir dosyada mevcutsa erişime izin verilecektir.

Bir şifre dosyası oluşturun

Kimlik bilgisi dosyası genellikle .htpasswd ve erişimi kısıtlamak istediğiniz dizinde bulunur. Varsayılan olarak Apache, ile başlayan tüm dosyalara erişime izin vermez. .ht, yani dosya gibi şifreli dosya .htaccess, sitenize gelen herhangi bir ziyaretçi tarafından okunamaz.

Dosyanın her satırı bir kullanıcı hakkında veri içerir. Oturum açma ve şifreli parola iki nokta üst üste ile ayrılır. Misal:

Yönetici:YFC5nYLiUI2ig vasya:bnqw1eZHP2Ujs

Yardımcı program parolaları şifrelemek için kullanılır. htpasswd, Apache ile birlikte gelir. Yeni bir veri dosyası oluşturmak için
kullanıcı yönetici, şu komutu girin:

$ htpasswd -c .htpasswd yönetici

Zaten var olan bir dosyaya eklemek için şu komutu kullanın:

$ htpasswd .htpasswd vasya

Başladıktan sonra, yardımcı program sizden şifreyi iki kez girmenizi isteyecek ve eğer eşleşirlerse kullanıcı verileri eklenecektir.

Erişim sınırlaması

Şimdi, erişmeye çalışırken yetkilendirme isteğini etkinleştirmek için yapılandırma dosyasında veya dosyada değişiklik yapmanız gerekir. .htaccess. dosyaların kullanıldığını hatırlatırım. .htaccess sunucu performansını düşürdüğü için istenmeyen bir durumdur.

AuthType Temel AuthName "Yönetim bölgesi" AuthUserFile /var/www/example.com/admin/.htpasswd Geçerli kullanıcı gerektir

Dizine giden yolu (Dizin), şifreli dosyanın yolunu (AuthUserFile) ve şifre istendiğinde kullanıcıya görüntülenen bilgi istemi dizesini (AuthName) değiştirmeniz gerekecektir. Diğer direktiflerin anlamı Apache belgelerinde bulunabilir.

Yapılandırma dosyasında değişiklik yaptıktan sonra Apache'yi yeniden başlatmayı unutmayın.

notlar

AT bu örnek erişim kısıtlamasının en basit versiyonu verilmiştir. Genel olarak, Apache kimlik doğrulama sisteminin olasılığı çok daha geniştir. Örneğin, kullanıcılar gruplara ayrılabilir, şifreler bir veritabanında saklanabilir veya diğer sunuculardan özel bir protokol kullanılarak istenebilir. Apache belgelerindeki tüm özelliklere aşina olmanızı öneririz.

Örnek gösterir en basit tip kimlik doğrulama - Temel. Bu durumda parolanın istemciden sunucuya açık, şifrelenmemiş bir biçimde iletildiğini bilmelisiniz. Bu size uymuyorsa, başka bir kimlik doğrulama türü veya HTTPS protokolü kullanabilirsiniz.

.htaccess ek yapılandırma dosyası ayrıca genellikle siteye, sitenin bölümlerine veya sunucuda bulunan belirli dosyalara erişimi kısıtlamak için kullanılır.

Tüm siteye erişimi engellemek için .httacces dosyasına aşağıdakileri yazmanız gerekir:



Yalnızca belirli bir ip adresinden erişimi engelle:


herkesten inkar
sipariş izin ver reddet
herkesten inkar
inkar etmek user_ip_address


"user_ip_address" belirli bir ip adresi ile değiştirilmelidir.

Yalnızca belirli bir ip adresinden erişime izin vermek için şunları yazabilirsiniz:


sipariş izin ver reddet
herkesten inkar
ip_user_address'den izin ver


.htaccess dosyasını kullanarak belirli bir dosyaya erişimi de reddedebilirsiniz. Örneğin, .htaccess dosyasının kendisine kullanıcı erişimini reddedelim. Bu durumda sunucu, dosyada belirtilen talimatları kullanabilecektir:


< Dosyalar .htaccess >
izin ver, reddet
herkesten inkar

Dosya Koruması

Muhtemelen, tüm İnternet kullanıcıları çeşitli sitelerde aynı makalelere rastladı. Bu makalelerin diğer kaynaklardan basitçe çalınması genellikle olur. Arama motorları yinelenen sayfalarla uğraşmaya çalışır, ancak orijinal kaynak seçimleri her zaman doğru değildir. Ve bu, metin yazarları ve web yöneticileri için ciddi bir sorundur, çünkü yazarlık kaliteli içerik bazen uzaklaşır çok sayıda zaman ve çaba ve sitenizden içerik kopyalayan biri için arama motorları tarafından cezalandırılmak çok tatsız. Ve genellikle metinle birlikte resimler de çalınır. Ayrıca, birçok hırsız, sunucularına aşırı yüklenmemek için diğer sitelerden resim indirmez, sadece kaynak sitede bulunan dosyalara bağlantı verir. Başka bir sitede bulunan bir dosyaya bağlantı eklemeye hotlink denir. Resimlere bağlantılara ek olarak, bu, örneğin indirilebilecek diğer dosyalara bağlantılar da olabilir. Bu tür bağlantı noktaları, içerik yazarı için yalnızca son derece rahatsız edici değildir. Ayrıca Origin sunucusunu aşırı yüklerler.

.htaccess dosyasına iki satır ekleyerek dosyaları hotlinking'den koruyabilirsiniz:



siteniz.ru.*$


Parantez içinde "|" sembolü ile sunucu ve site kullanıcıları dışında herkesin erişimi reddedilecek dosya uzantıları belirtilir. siteniz.ru

Bu uzantıya sahip dosyaları kullanıcılara sunmak için arama motorları siteniz.ru ile aynı şekilde onlara bir yasağı hariç tutmak gerekir:


RewriteCond %(HTTP_REFERER) !^$
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)? siteniz.ru
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?yandex.ru
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?yahoo.
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?google.
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?bing.
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ -

Şifre koruması

Ek yapılandırma dosyası.httacces kullanarak site dizini için bir şifre belirlemek mümkündür, belirli dosya veya aynı uzantıya sahip bir grup dosya. Bir dizine parola ayarlamak için .htaccess'e şunu yazmanız gerekir:


Yetki Adı" Ne istiyorsun?"
AuthType Temel
Yetki Kullanıcı Dosyası
geçerli kullanıcı gerektirir


Bu satırları içeren .htaccess dosyası, erişimi engellemek istediğimiz dizine yerleştirilmelidir. Bir kullanıcı sitenin ilgili bölümüne girmeye çalıştığında, sunucu 401 durum kodunu döndürür (yetkilendirme gereklidir) ve kullanıcı adı ve şifre girmek için alanların ve "Ne istiyorsun?" mesajının belirtildiği bir pencere görüntüler. "AuthName" yönergesi (yalnızca izin verilen Latin sembolleri ve sayılar).

Kullanıcı adları ve parolalar .htpasswd dosyasında saklanır. Bu dosyanın yolu "AuthUserFile" yönergesinde belirtilmiştir.

Önemli:.htpasswd dosyasının yolu mutlak olarak belirtilir, kök dizini sunucu.

.htaccess içinde belirtilmesi gereken .htpasswd yolunu bulmak için php dosyası, kapsamak:


<? php yankı$_SERVER["DOCUMENT_ROOT"]; ? >


Bu dosyayı .htpasswd ile aynı yerde sunucuya yükleyin ve bir tarayıcıda açın. Oluşturulan sayfada, sunucunun kök dizininden belirtilen dizine giden mutlak yolu göreceksiniz.

Belirli bir dosya için bir şifre belirleyebilirsiniz. Aşağıdaki şekilde:


< Dosyalar file.txt >
AuthName "Bu" herkes için değil"
AuthType Temel
Yetki Kullanıcı Dosyası /home/server/your_site.ru/pass/.htpasswd


Bir grup dosya için şifre:


< Dosyalar "\.(sql)$" >
AuthName "Bu" herkes için değil"
AuthType Temel
Yetki Kullanıcı Dosyası /home/server/your_site.ru/pass/.htpasswd


AT bu durum.sql uzantılı tüm dosyalara yalnızca bir parola ile erişilebilir.