Aralık, 2008 Tarihinden sonraki yazılar görüntüleniyor...

.htaccess konuları [Parola korumalı dizinler ve dosyalar]

Date27 / Aralık / 2008 Author İsa Engiz    Category Genel     Tags , , Yorumlar5 Yorum Yapilmis.

.htaccess dosyalarının belki de en çok ihtiyaç duyulan kullanım alanıdır parola korumalı dizinler oluşturma işlemi. “Eski moda” gibi dursa da, hala web geliştiricilerin bazen işine yaramakta ve ihtiyaç duyulmaktadır.

.htaccess dosyası ile bir dizini parola korumalı yapma işleminin iki aşaması vardır.

  1. korumak istediğimiz dizine bir .htaccess dosyası yerleştiririz.
  2. Dizini görüntülemek isteyenlerin girmek zorunda olduğu “kullanıcı ismi” ve “parola” nın yer aldığı bir dosya oluştururuz. Bu dosyanın adı .htpasswd dir.

Bu işlem ile koruduğumuz dizinlere kullanıcı erişmek istediğinde pop-up olarak açılan pencere kullanıcı adı ve parola girmesini isteyecek, yetkilendirme gerçekleşmezse 403 hata sayfasını karşısına çıkaracak.

Birinci aşama: .htaccess dosyası

Birinci aşamada .htaccess dosyamızı oluşturalım. İçeriği şu şekilde olacak:

AuthName "Lutfen kullanici adi ve parolanizi giriniz:"
AuthUserFile /guvenlidizin/.htpasswd
AuthType Basic
require valid-user

Bu dosyanın içeriğini şu şekilde açıklayabiliriz: İlk satırda kullanıcının karşısına çıkan pop-up pencerenin kullanıcıya mesajını yazıyoruz, ikinci satırda .htpasswd dosyasının hangi dizinde bulunduğunu belirtiyoruz, korumak istediğimiz dizinin içerisinde olmasına gerek yok, hatta o dizinin içerisinde olmamalı. .htpasswd dosyasının bulunması gereken yer, /www dizinin üzeridir, burada olması daha güvenlidir. 3. satırda yetkilendirme işleminin tipini, 4. satırda ise hangi açıdan yetkilendirme yapacağını belirtiyoruz.

İkinci aşama: .htpasswd dosyası

Bu aşamada oluşturacağımız .htpasswd dosyasının içeriği şu şekilde olacak:

isa:oYBf88gdB5f5o
isa2:JyVzUTcfnc.WQ

Bu dosyanın içeriğinde ise kullanıcı adı ve parolası yer alıyor: kullanıcı:parola. Her satırda bir kullanıcı yer almakta. Dolayısıyla bizim işlemimizde tanımlı olan 2 kişi var, isa ve isa2. yalnızca bu kişiler giriş yapabilecek.

Peki parolalar biraz garip değil mi? Evet, garip, çünkü bunlar şifrelenmiş hali. Unix-Linux sistemlerde .htpasswd dosyasına parolanızı şifrelenmiş olarak yazmak zorundasınız. Örneğin yukarıda isa2 kullanıcısının parolası isa2 ancak şifrelenmiş hali ise JyVzUTcfnc.WQ.

Önemli Noktalar

Öncelikle şunu belirmekte fayda var, .htpasswd dosyasını, herkesin erişebileceği bir dizine koymamalısınız, sitenizin ana dizinin üstünde yeralmalı. (www ya da public_html diziniin içerisinde yeralmamalı.) Eğer siteniz linux sunucuda /home/site/ dizininde yer alıyorsa ve sitenizin www klasörü /home/site/www/ şeklinde ise, .htpasswd dosyası /home/site/.htpasswd şeklinde yerleştirilmeli.

.htaccess dosyasında require valid-user nasıl yetkilendirme yapacağını yazdık, burada, .htpasswd dosyasında adı bulunan tüm kullanıcılar, doğru parolayı girdiklerinde, ilgili dizini görüntülemek için yetkilendirilmiş olacaklar. .htpasswd dosyasında yer alan kullancılardan sadece isa’nın giriş yapabilmesini isteseydik, “require user isa” şekilnde yazacaktık kodumuzu.

.htpasswd dosyasında parolamızı nasıl şifreleyeceğiz? Bunun için internette pek çok araç bulunmakta, bazıları: http://www.4webhelp.net/us/password.php , http://www.euronet.nl/~arnow/htpasswd/ , http://www.sherylcanter.com/encrypt.php veya http://css.psu.edu/publish/htpasswd/htpasswd.html adreslerindeki araçlar kullanılabilir.

Sadece belirli dosyaları korumak

Şu ana kadar oluşturduğumuz .htaccess dosyası ile bütün dizine erişim için yetkilendirme gerçekleştirilmesini istedik, ancak sadece belirli dosyalara erişimi de kısıtlayabiliriz. Bu durumda kullanıcılar dizinde gezebilecekler ve sadece bizim belirlediğimiz dosyaları görmek istediklerinde yetkilendirme pop-up penceresi açılacak.

Bu durumda kullanacağımız kod aşağıdaki gibi olacak:

AuthName "Lutfen kullanici adi ve parolanizi giriniz:"
AuthUserFile /guvenlidizin/.htpasswd
AuthType Basic
<files dosya1>
require valid-user
</files>
<files dosya2>
require valid-user
</files>
<files dosya3>
require valid-user
</files>

Sonuç

.htaccess dosyaları ile dosya ve dizinleri koruma işlemi bu şekilde gerçekleşmekte, siz de dosya veya dizinleri parola korumalı yapmak istediğinizde hızlı şekilde bu methodu kullanarak işlemi gerçekleştirebilirsiniz.

bir sonraki .htaccess yazısında görüşmek üzere!

Bütün .htaccess Yazıları

.htaccess konuları [Giriş]
.htaccess konuları [Hataları Yönlendirme]
.htaccess konuları [IP Engelleme]
.htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]
.htaccess konuları [Parola korumalı dizinler ve dosyalar]
.htaccess konuları [Yönlendirme]
.htaccess konuları [Dinamik bağlandı (hotlink) engelleme]
.htaccess konuları [kötü örümcekleri engelleme]
.htaccess konuları [İşaretçi siteye göre engelleme]
.htaccess konuları [Kapanış]

.htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]

Date23 / Aralık / 2008 Author İsa Engiz    Category Genel     Tags , Yorumlar1 Yorum Yapilmis.

Tarayıcı bir dizini görüntülemek istediğinde, Apache web sunucusu varsayılan olarak index.html adında bir dosya arar ve bulursa onu yükler ve gösterir. index.html yoksa index.php isminde bir dosya var mı diye bakar, varsa onun içeriğini gösterir. Her hangi bir dosya bulamazsa, ayarlarına göre ya dizinin içeriğini sade bir şekilde gösterir ya da “dizinin içeriğini görüntülemeye izniniz yok” der.

Biz ise bu yazıda varsayılan dosyayı nasıl değiştirebileceğimizi tartışacağız.

Senaryomuz şöyle olsun, tarayıcı, /resimler klasörünün içeriğini görüntülemek istesin. /resimler dizininde index.php veya benzeri bir dosya yoksa büyük bir ihtimalle dizinin içeriği kullanıcıya gösterilecektir. Bunu engellemek veya değiştirmek için, o dizinin varsayılan dosyasını değiştiririz:

DirectoryIndex ../index.php

Böylece /resimler klasörünün içeriği gezilmek istendiğinde, web sunucusu bir üst dizindeki index.php yi varsayılan dosya olarak çağıracak ve böylece sitenin ana sayfası görüntülenecek!

Ya da başka bir senaryoda dizinin içerisindeki varsayılan olarak yüklenebilecek dosyaları çoklu olarak tanımlayabiliriz:

DirectoryIndex dosya.php index.py index.pl default.htm

Bu kod sayesinde bir dizinin içeriği görüntülenmek istendiğinde web sunucusu önce dosya.php dosyasını yüklemeye çalışacak, o yoksa index.py dosyasını arayacak, o da yoksa index.pl diye devam edecek.

Dizinlerin varsayılan dosyalarını değiştirmek bu kadar kolay, siz de index.php dosyasının varsayılan olarak yüklenmesine mahkum değilsiniz, isterseniz değiştirebilirsiniz. (daha çok güvenlik nedenleriyle.)

Bir sonraki .htaccess yazısında görüşmek üzere…

Bütün .htaccess Yazıları

.htaccess konuları [Giriş]
.htaccess konuları [Hataları Yönlendirme]
.htaccess konuları [IP Engelleme]
.htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]
.htaccess konuları [Parola korumalı dizinler ve dosyalar]
.htaccess konuları [Yönlendirme]
.htaccess konuları [Dinamik bağlandı (hotlink) engelleme]
.htaccess konuları [kötü örümcekleri engelleme]
.htaccess konuları [İşaretçi siteye göre engelleme]
.htaccess konuları [Kapanış]

.htaccess konuları [IP Engelleme]

Date15 / Aralık / 2008 Author İsa Engiz    Category Genel     Tags Yorumlar5 Yorum Yapilmis.

Aslında sitemizi yaparken tüm ziyaretçilerin faydalanması için, gelip bilgi alması için yaparız. Ancak Bazen herhangi bir ip’den gelen ziyaretçileri her hangi bir nedenle engellemek isteyebiliriz. Buna gereksinim duyduğumuzda, .htaccess dosyaları imdadımıza yetişir.

IP adreslerinde engelleme mantığı genelde Ülkelere göre yapılır. Ancak tam ip adresini bildiğiniz bir makinenin de sizin sitenize erişmesini engelleyebilirsiniz.

Örnek olarak aşağıdaki .htaccess dosyasını inceleyelim:

order allow,deny
deny from 81.212
deny from 200.201.202
allow from all

Burada ip adresleri 81.212 ve 200.201.202 ile başlayan ülkeleri engelledik. (Bunlar Türkiye ve ABD).

Benzer şekilde tek bir IP adresinin de erişimini engelleyebilirsiniz:

order allow,deny
deny from 	88.233.45.99
allow from all

Nerede işime yarar?

IP engelleme genelde sitenize bağlanıp da “sizin hoşlanmadığınız” işler yapan ziyaretçileri engellemek için kullanılır. Bunu da sitenizin kayıt dosyalarına bakarak anlarsınız.

Ya da bir ülkeden gelen ziyaretçilerin sitenizdeki içeriği görmesini istemiyorsanız IP’yi engelleyebilirsiniz.

Bir sonraki .htaccess yazısında görüşmek üzere…

Bütün .htaccess Yazıları

.htaccess konuları [Giriş]
.htaccess konuları [Hataları Yönlendirme]
.htaccess konuları [IP Engelleme]
.htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]
.htaccess konuları [Parola korumalı dizinler ve dosyalar]
.htaccess konuları [Yönlendirme]
.htaccess konuları [Dinamik bağlandı (hotlink) engelleme]
.htaccess konuları [kötü örümcekleri engelleme]
.htaccess konuları [İşaretçi siteye göre engelleme]
.htaccess konuları [Kapanış]

.htaccess konuları [Hataları yönlendirme]

Date14 / Aralık / 2008 Author İsa Engiz    Category Genel     Tags , , Yorumlar6 Yorum Yapilmis.

“.htaccess konuları” yazı dizisinin 2. bölümüyle karşınızdayız. Bugün, sunucuda oluşan hataları belli sayfalara yönlendirmenin nasıl yapılacağı üzerine tartışalım.

Daha önce, “php ile hata sayfaları yönetimi” yazısında da bu konuya değinmiştik.

htaccess-apache-hata-dökümanları

Apache web sunucusu çalışırken bazen hatalar ile karşılaşır, çalışması bölünür, bu durumda ziyaretçiye kendi varsayılan hata sayfasını gösterir. Bu sayfanın pek ilgi çeken bir tarafı yoktur, dolayısıyla siz, siteniz hata yaptığında bile ziyaretçiye güzel bir sayfa göstermek isteyebilirsiniz. (istemelisiniz!) Bu durumda sunucu tabanlı hataları ilgili sayfaya yönlendirmelisiniz. Bunu da .htaccess dosyası ile sağlayabiliriz.

Temel olarak karşılaşılan hatalar ve kodları şu şekildedir:

  • 401: Sayfa görüntüleme izni hatasıdır. Eğer bir dizini ya da bir sayfayı parola ile koruyorsanız, kullanıcı parolayı yanlış girdiğinde karşılaşacağı sayfadır.
  • 403: Erişim engelleme hatasıdır. Kullanıcı’nın belirtilen dosyayı görüntülemeye hakkı yoktur.
  • 404: Sayfa bulunamadı hatasıdır.
  • 500: Sunucu işlemi gerçekleştirirken bir hatayla karşılaştı anlamına gelir.

Daha detaylı liste için bu sayfaya bakabilirsiniz.

Ziyaretçi bu hatalardan herhangi biri ile karşılaştığında bizim tasarladığımız hata sayfasını görmesini istiyorsak, içeriği aşağıdaki kod olan bir .htaccess dosyası oluşturum sitemizin ana dizinine yerleştiririz:

ErrorDocument 404 /hatalar/404.html
ErrorDocument 403  /hatalar/403.html
ErrorDocument 401 /hatalar/401.html
ErrorDocument 500  /hatalar/500.html

Siz de yukarıda listelenmeyen diğer hata kodları için yeni sayfalar oluşturabilir ve .htaccess dosyasından yönlendirme yapabilirsiniz.

Böylece artık ziyaretçi daha “bilgilendirici” hata sayfaları ile karşılaşmış olacak.

Gördiüğünüz gibi .htaccess dosyası ile sunucunun ayarlarına müdahele etmiş olduk. Apache web sunucusu, bir dizinde işlem yaparken hata ile karşılaştığında artık sizin belirlemiş olduğunuz ayarlara göre çalışacaktır. İlerleyen yazılarda .htaccess dosyaları ile Apache’nin başka özelliklerini de değiştirebilecek ve yeni özellikler de ekleyeceğiz.

Bir sonraki .htaccess yazısında görüşmek üzere…

Bütün .htaccess Yazıları

.htaccess konuları [Giriş]
.htaccess konuları [Hataları Yönlendirme]
.htaccess konuları [IP Engelleme]
.htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]
.htaccess konuları [Parola korumalı dizinler ve dosyalar]
.htaccess konuları [Yönlendirme]
.htaccess konuları [Dinamik bağlandı (hotlink) engelleme]
.htaccess konuları [kötü örümcekleri engelleme]
.htaccess konuları [İşaretçi siteye göre engelleme]
.htaccess konuları [Kapanış]

.htaccess konuları [Giriş]

Date13 / Aralık / 2008 Author İsa Engiz    Category Genel     Tags , , , Yorumlar11 Yorum Yapilmis.

apache web server, htaccessBazen, hazırladığımız uygulamanın bir bölümünde sunucunun biraz farklı davranmasını isteriz, uygulamanın sadece o bölümüne ayrıcalık tanımasını, onu farklı yorumlamasını isteyebiliriz. Bunları yapabilmemizin yolu .htaccess dosyalarından geçer. Bugün başlayacağımız yazı dizisinde de hergün bir .htaccess konusunu ele alıp değerlendireceğiz.

Devamını Oku »»

Arama


E-Posta Aboneliği


RSS Aboneliği

En Çok Yorumlanan Yazılar

Etiketler

404 ajax apache arama butonu as astrofizik açık kaynak banner blogger blogger/blogspot Blogger / Blogspot blogspot case chmod css date dosya yükleme editör etiket etkinlik favicon featured form ftp galeri Genel gimp hata sayfası header htaccess htpasswd ilişkisel veritabanı index innodb javascript join JQuery kategori koodla linux mysql opacity php resim url

Son Yorumlar

  • Fatih: Açıkçası sitenizi yeni keşfettim ve gerçekten beğendim. Kaynak ve tutorial ihtiyacı olduğunda yabancı blog...
  • beyo: emeğine sağlık, temiz bir anlatım olmuş
  • gokhan: güzel bir anlatım yapmışsın.. devamını bekleriz.. kolay gelsin
  • web yazılım şirketi: google blog araması ile .net üzerinden hizmet veren web yazılım şirketi ararken tesadüfen bu web...
  • Codderol: çok teşekkürler bu çalışma bana çok yardımcı oldu….

Sayfalar


Faydalı Bağlantılar