Perl ile CGI Programlama

 

KONU 01: WEB SAYFALARINA ŞİFRELİ ERİŞİM


Apache web sunucularında şifreli web erişimi için, Apache'nin /etc/httpd/conf klasörü altında yer alan access.conf dosyasında bazı değişiklikler yapmak gerekir. Şimdi bunları adım adım açıklayalım.

1. Adım:

httpd.conf dosyası içinde,

<Directory />
...
</Dirctory>

yazan satırlar arasında "AllowOverride" diye başlayan bir satır olmalı. Muhtemelen o satır, "None" değerini almıştır. None yerine "AuthConfig" yazıyoruz.

NOT: AllowOverride seçeneği, normal httpd.conf ile belirtilen kuralların nerede ve hangi tipte lokal olanı ile çiğnenebileceğini göstermek amacıyla verilen 
bir anahtar ayar kelimedir.

2. Adım:

Şifre koymak istediğimiz klasöre gidip, ".htaccess" isimli bir dosya oluşturalım. Örneğin;

cd /apache/htdocs/gizlidizin
joe .htaccess

3. Adım:

Aşağıdaki satırları .htaccess'in içine yazalım:

deny form all
AuthType Basic
AuthUserFile /apache/gizlidizin/gizlidosya
AuthName "Gizli Bölge"
require valid-user
satisfy any

Buradakileri de kısaca açıklayacak olursak,

  •  "deny from all" : İlk kural olarak herkesi "geri çevir". Burada dikkat edilmesi gereken şey, kuralların hiyerarşik bir düzen izliyor olması. Yani bir alttaki kural, üsttekinde bir istisnai durum oluşturur...

  • "AuthType Basic": Bu, Apache’nin standart kullanıcı adı/şifre sorması ve bunlara, text bir dosya içerisinden ulaşması için gereken doğrulama (onaylama) tipi ....

  • "AuthUserFile ......" : Kullanıcı adları ve encrypt edilmiş şifrelerin bulunduğu dosyanın sabit disk üzerindeki konumu...

  • "AuthName": Şifreli alanin ismi, "user/password" ekranında çıkacak mesaj ...

  • "require valid-user" : Yukarıdaki "deny from all" kuralında bu satır ile bir delik açıyoruz. eğer kullanıcı doğrulanabilirse, içeri alınacak, demektir.

  • "satisfy any" : Asıl içeri kabul etme işlemi ise burada yapılıyor, eğer birden fazla içeri almak için kriterimiz varsa, bunlar burada sıralanabilir...Örneğin : "satisfy valid-user" gibi....

4. Adım:

Şimdi şifre dosyasını oluşturalım: Bunun için, Apache ile birlikte gelen htpasswd programını kullanarak, yukarıdaki .htaccess dosyasında belirttiğimiz yer ile aynı yerde bulunan bir şifre dosyası oluşturuyoruz. 
Örneğin : Ekleyeceğimiz kullanıcının ismi emre olsun...
htpasswd -c /apache/gizlidizin/gizlidosya emre

Bu komuttan sonra, size emre kullanıcısı için şifre sorulacaktır. Şifreyi girince dosyanız tamamdır.

UYARI 1 : "-c " parametresi, dosyayı ilk kez oluştururken kullanılır. Eğer sonradan bir kullanıcı eklemek isteseniz, komutu "-c" olmadan vermelisiniz.

UYARI 2 : password dosyanız web'den erişilemeyecek ve sistemdeki diğer yetkisiz kullanıcıların erişemeyecekleri bir yerde bulunmalıdır. Tersi bir durumda, dosyalarınızın ele geçirilip, şifrelerin çözülmesi ihtimali vardır.

5. Adım:

Buraya kadar access.conf dosyasını düzenledik. Son olarak, yeni ayarların etkin olması için Apache'yi yeniden başlatmak gerekir (root yetkisi ile). 

Web sunucunuzu, komut satırından aşağıdaki komutu girerek kolayca yeniden başlatabilirsiniz:

./etc/rc.d/init.d/httpd restart

Artık şifreli web alanımız hazır... İstediğiniz gibi kullanabilirsiniz... Gelsin paralar :))


Konu 00 Konu 02
(C) Copyright Adem GÜNEŞ - Konya 1999, adem@alaeddin.cc.selcuk.edu.tr