Doküman

.htaccess Kullanarak Dosyalara Erişimi Reddetme/İzin Verme

.htaccess dosyası, Apache kullanan web sunucuları için güçlü bir yapılandırma aracıdır.  Güvenlik ayarları da dahil olmak üzere web sitenizin çeşitli yönlerini kontrol etmenize olanak tanır.  .htaccess dosyasının kritik kullanımlarından biri dosyalara ve dizinlere erişimi yönetmektir.  Bu makale, IP adresi, kullanıcı kimlik doğrulaması ve dosya türleri gibi farklı ölçütlere göre dosyalara erişimi reddetmek veya erişime izin vermek için .htaccess kullanma sürecinde size yol gösterecektir.

 

.htaccess Kullanarak Erişimi Yönetme

.htaccess dosyası, erişimi kontrol etmek istediğiniz dizine yerleştirilir.  Apache web sunucusu tarafından okunur ve genel ayarları geçersiz kılabilir.  Aşağıda .htaccess kullanarak dosyalara erişimi yönetmenin çeşitli yöntemleri verilmiştir.

.htaccess’te <Files> Yönergesini Kullanmak

Bir .htaccess dosyasındaki <Files> yönergesi, kuralları belirli dosyalara uygulamak için kullanılır.  Bu, dizinin tamamını etkilemeden belirli dosyalara erişimi kontrol etmek istediğinizde kullanışlıdır.  Sözdizimi basittir:

<Files "filename">
    directive1
    directive2
    ...
</Files>

“Dosya adı”nı, korumak istediğiniz dosyanın adıyla değiştirin.  <Dosyalar> bloğunun içine erişim kontrolleri veya kimlik doğrulama kuralları gibi herhangi bir yönergeyi ekleyebilirsiniz.  Bu yöntem, dizinlerin tamamı yerine belirli dosyaları hedeflemek için aşağıdaki örneklerin her birine uygulanabilir.

  1. Belirli Dosyalara Erişimi Reddetme: Bu yöntem, web sitenizdeki belirli dosyalara erişimi engellemenizi sağlar.  Hassas dosyaları korumak için kullanışlıdır.
    <Files "secretfile.txt">
        Order allow,deny
        Deny from all
    </Files>
    

    Bu kod tüm kullanıcıların “secretfile.txt” dosyasına erişimini reddeder.  Order izin ver, reddet yönergesi, İzin Ver ve Reddet yönergelerinin işlenme sırasını belirtir.

  2. IP Adresine Göre Erişimi Engelleme: Ziyaretçinin IP adresine göre web sitenize veya belirli dosyalara erişimi kısıtlayabilirsiniz.
    Order deny,allow
    Deny from all
    Allow from 192.168.1.100
    

    Bu kod, 192.168.1.100 IP adresinden gelenler dışındaki tüm kullanıcıların erişimini engeller.  Daha fazla İzin Ver satırı ekleyerek birden fazla IP adresini listeleyebilirsiniz.

  3. Kullanıcı Kimlik Doğrulamasını Gerektirme: Belirli dosyaları veya dizinleri korumak için kullanıcıların kendi kimliklerini doğrulamasını zorunlu kılabilirsiniz.
    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /path/to/.htpasswd
    Require valid-user
    

    Bu yöntem, kullanıcı adlarını ve parolaları içeren bir .htpasswd dosyası oluşturmanızı gerektirir.  AuthType Basic yönergesi kimlik doğrulama türünü belirtir ve AuthUserFile yönergesi parola dosyasına işaret eder.

    .htpasswd dosyasını oluşturmak için terminalinizde aşağıdaki komutları kullanın:

    1. .htpasswd dosyasını oluşturmak istediğiniz dizine gidin veya tam yolu belirtin:

    $ cd /path/to/directory
    

    2. Dosyayı oluşturmak ve kullanıcı eklemek için htpasswd komutunu kullanın.  Eğer htpasswd kurulu değilse, paket yöneticinizi kullanarak kurabilirsiniz (örneğin, Debian tabanlı sistemlerde # sudo apt-get install apache2-utils):

    $ htpasswd -c .htpasswd username
    

    -c bayrağı dosyayı oluşturur.  Kullanıcının şifresini girmeniz ve onaylamanız istenecektir.

    Mevcut .htpasswd dosyasına daha fazla kullanıcı eklemek için -c işaretini atlayın:

    $ htpasswd .htpasswd newuser
    

    Artık yukarıdaki konfigürasyona sahip .htaccess dosyasını uygun dizine yerleştirerek dosyalarınızı veya dizinlerinizi koruyabilirsiniz.

  4. Dosya Türlerine Erişimi Reddet: Ayrıca yapılandırma dosyaları veya komut dosyaları gibi belirli dosya türlerine erişimi de reddedebilirsiniz.
    <FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
        Order allow,deny
        Deny from all
    </FilesMatch>
    

    Bu kod, belirtilen uzantılara sahip herhangi bir dosyaya erişimi engeller.  FilesMatch yönergesi, dosya türlerini eşleştirmek için normal ifadeler kullanmanıza olanak tanır.



  5. Belirli Yönlendirenlerin Erişimine İzin Verme: Yönlendiren URL’ye göre erişimi kısıtlayabilir, yalnızca isteğin belirli bir siteden gelmesi durumunda erişime izin verebilirsiniz.
    SetEnvIf Referer "allowedsite.com" allowed_referrer
    Order Deny,Allow
    Deny from all
    Allow from env=allowed_referrer
    

    Bu kod, yalnızca yönlendiren URL’nin “izin verilensite.com” içermesi durumunda erişime izin verir.  SetEnvIf yönergesi, koşulun karşılanması durumunda bir ortam değişkeni ayarlar ve bu değişkene göre erişim verilir.

 

 

Yazının orijinalini buradan okuyabilirsiniz.