Web Sitelerini Güvenli Hale Getirmek ve Özelleştirmek için 25 Yararlı Apache '.htaccess' Püf Noktası


Web siteleri hayatımızın önemli bir parçasıdır. İşletmeleri genişletme, bilgiyi paylaşma ve çok daha fazlasını yapma araçlarına hizmet ediyorlar. Daha önce yalnızca statik içerik sağlamakla sınırlıydı, dinamik istemci ve sunucu tarafı kodlama dillerinin tanıtılması ve html gibi mevcut statik dilin html5'e sürekli olarak geliştirilmesiyle, web sitelerine her türlü dinamiği eklemek mümkün ve kalanların da yakında takip etmesi bekleniyor. gelecek.

Web siteleri ile birlikte, bu web sitelerini dünyanın her yerindeki geniş bir kitleye gösterebilecek bir birime ihtiyaç duyulmaktadır. Bu ihtiyaç, bir web sitesini barındırmak için gerekli araçları sağlayan sunucular tarafından karşılanır. Bu, kişinin web sitelerini barındırmasına izin veren Apache HTTP Sunucusu, Joomla ve WordPress gibi sunucuların bir listesini içerir.

Web sitesi barındırmak isteyen kişi, kendisine ait bir yerel sunucu oluşturabilir veya web sitesini barındırmak için yukarıda belirtilenlerden herhangi biri veya başka bir sunucu yöneticisi ile iletişime geçebilir. Ancak asıl mesele bu noktadan sonra başlıyor. Bir web sitesinin performansı temel olarak aşağıdaki faktörlere bağlıdır:

  1. Web sitesi tarafından tüketilen bant genişliği.
  2. Web sitesi bilgisayar korsanlarına karşı ne kadar güvenli?
  3. Veritabanında veri arama konusunda iyimserlik
  4. Gezinme menülerinin görüntülenmesi ve daha fazla kullanıcı arayüzü özelliği sağlanması söz konusu olduğunda kullanıcı dostudur.

Bunun yanı sıra, web sitelerini barındıran sunucuların başarısını belirleyen çeşitli faktörler şunlardır:

  1. Belirli bir web sitesi için elde edilen veri sıkıştırma miktarı.
  2. Aynı veya farklı bir web sitesi isteyen birden fazla müşteriye aynı anda hizmet verme yeteneği.
  3. Web sitelerine girilen e-postalar, kredi kartı bilgileri vb. gibi gizli verilerin güvenliğinin sağlanması.
  4. Bir web sitesinin dinamikliğini artırmak için giderek daha fazla seçeneğe izin vermek.

Bu makale, sunucular tarafından sağlanan, web sitelerinin performansını artırmanın yanı sıra onları kötü botlardan, sıcak bağlantılardan vb. korumaya yardımcı olan böyle bir özelliği, yani '.htaccess' dosyasını ele almaktadır.

.htaccess nedir?

htaccess (veya köprü metni erişimi), web sitesi sahiplerine, web sitelerinin işlevselliğini geliştirmek amacıyla sunucu ortamı değişkenlerini ve diğer parametreleri kontrol etme seçenekleri sunan dosyalardır. Bu dosyalar web sitesinin dizin ağacındaki herhangi bir dizinde bulunabilir ve dizine ve içindeki dosya ve klasörlere özellikler sağlayabilir.

Bu özellikler nelerdir? Bunlar sunucu direktifleridir, yani sunucuya belirli bir görevi gerçekleştirmesi talimatını veren satırlardır ve bu direktifler yalnızca bu dosyanın yerleştirildiği klasörün içindeki dosya ve klasörler için geçerlidir. Tüm İşletim Sistemleri ve web sunucuları varsayılan olarak bunları yok sayacak şekilde yapılandırıldığından bu dosyalar varsayılan olarak gizlidir ancak gizli dosyaları görünür hale getirmek bu çok özel dosyayı görmenizi sağlayabilir. Ne tür parametrelerin kontrol edilebileceği sonraki bölümlerin tartışma konusudur.

Not: .htaccess dosyası /apache/home/www/Gunjit/ dizinine yerleştirilirse o zaman o dizindeki tüm dosya ve klasörler için yönergeler sağlayacaktır, ancak bu dizin başka bir klasör içeriyorsa: /Gunjit/images/ ki bu da yine başka bir .htaccess dosyasına sahiptir, o zaman bu klasördeki yönergeler, ana .htaccess dosyası (veya hiyerarşide üst klasördeki dosya) tarafından sağlanan yönergeleri geçersiz kılacaktır.

Apache Sunucusu ve .htaccess dosyaları

Halk arasında Apache olarak adlandırılan Apache HTTP Sunucusu, savaş stratejisindeki üstün becerilerine saygı duyulması nedeniyle adını bir Kızılderili Apache Kabilesinden almıştır. C/C++ ve XML üzerine kurulu olan bu platform, NCSA HTTPd sunucusunu temel alan ve World Wide Web'in büyümesinde ve ilerlemesinde önemli bir role sahip olan çapraz platformlu bir web sunucusudur.

En yaygın olarak UNIX'te kullanılan Apache, FreeBSD, Linux, Windows, Mac OS, Novel Netware vb. gibi çok çeşitli platformlarda kullanılabilir. 2009 yılında Apache, 100 milyondan fazla web sitesine hizmet veren ilk sunucu oldu.

Apache sunucusunun www/ dizininde kullanıcı başına bir .htaccess dosyası vardır. Bu dosyalar gizli olmasına rağmen gerektiğinde görünür hale getirilebilir. www/ dizininde, her biri kullanıcının veya sahibinin adını taşıyan bir web sitesine ait olan birkaç klasör vardır. Bunun dışında her klasörde, o klasördeki dosyaları yukarıda belirtildiği gibi yapılandıran bir .htaccess dosyası bulunabilir.

Apache sunucusunda htaccess dosyası nasıl yapılandırılır aşağıdaki gibidir…

Apache Sunucusunda Yapılandırma

İki durum olabilir:

Web sitesini kendi sunucusunda barındırma

Bu durumda, .htaccess dosyaları etkinleştirilmemişse, .htaccess dosyalarını yalnızca httpd.conf (Varsayılan yapılandırma dosyası) adresine giderek etkinleştirebilirsiniz. Apache HTTP Daemon için) ve bölümünü bulma.

<Directory "/var/www/htdocs">

Ve yazan satırı bulun…

AllowOverride None 

Ve düzeltin.

AllowOverride All

Artık Apache yeniden başlatıldığında .htaccess çalışacaktır.

Web sitesini farklı barındırma sağlayıcı sunucusunda barındırma

Bu durumda, eğer .htaccess dosyalarına erişime izin veriyorsa, barındırma yöneticisine danışmak daha iyidir.

Web Siteleri için Apache Web Sunucusunun 25 ‘.htaccess’ Püf Noktası

1. .htaccess dosyasında mod_rewrite nasıl etkinleştirilir

mod_rewrite seçeneği, yönlendirmeleri kullanmanıza ve başka bir URL'ye yönlendirme yaparak gerçek URL'nizi gizlemenize olanak tanır. Bu seçenek, uzun ve uzun URL'leri kısa ve hatırlanması kolay olanlarla değiştirmenize olanak tanıyarak çok faydalı olabilir.

mod_rewrite'a izin vermek için aşağıdaki satırı .htaccess dosyanızın ilk satırı olarak ekleme alıştırması yapmanız yeterlidir.

Options +FollowSymLinks

Bu seçenek sembolik bağlantıları takip etmenize ve böylece web sitesinde mod_rewrite seçeneğini etkinleştirmenize olanak tanır. URL'nin kısa ve net bir URL ile değiştirilmesi daha sonra sunulacaktır.

2. Web Sitelerine Erişime Nasıl İzin Verilir veya Reddedilir

htaccess dosyası, order, allow ve kullanarak web sitesine veya yerleştirildiği dizindeki bir klasöre veya dosyalara erişime izin verebilir veya erişimi reddedebilir. anahtar kelimeleri b>reddet.

Yalnızca 192.168.3.1 IP'ye erişime izin verilmesi
Order Allow, Deny
Deny from All
Allow from 192.168.3.1

OR

Order Allow, Deny
Allow from 192.168.3.1

Buradaki Order anahtar sözcüğü, izin ver, reddet erişiminin işleneceği sırayı belirtir. Yukarıdaki 'Order' ifadesi için, önce Allow ifadeleri işlenecek, ardından reddet ifadeleri işlenecektir.

Yalnızca bir IP Adresine erişimi reddetme

Aşağıdaki satırlar, IP Adresi 192.168.3.1 olan tüm kullanıcıların web sitesine erişmesine izin verecek araçları sağlar.

rder Allow, Deny
Deny from 192.168.3.1
Allow from All

OR


Order Deny, Allow
Deny from 192.168.3.1

3. Farklı hata kodları için Apache Hata belgeleri oluşturun.

Bazı basit satırlar kullanarak, kullanıcı/istemci web sitesinde bulunmayan bir sayfayı talep ettiğinde, çoğumuzun '404 Sayfa bulunamadı<' şeklinde göreceği gibi, sunucu tarafından oluşturulan farklı hata kodlarıyla çalışan hata belgesini düzeltebiliriz.' sayfasını web tarayıcılarında bulabilirsiniz. '.htaccess' dosyaları bu tür hata durumlarında ne yapılması gerektiğini belirtir.

Bunun için ‘.htaccess’ dosyalarına aşağıdaki satırların eklenmesi gerekiyor:

ErrorDocument <error-code> <path-of-document/string-representing-html-file-content>

'ErrorDocument' bir anahtar kelimedir, hata kodu 401, 403, 404, 500 veya kodu temsil eden herhangi bir geçerli hata ve son olarak 'belge yolu', yerel makinedeki (kendi yerel sunucunuzu kullanıyorsanız) veya sunucudaki (kullanıyorsanız) yolu temsil eder. web sitenizi barındıracak başka bir sunucu).

Örnek :
ErrorDocument 404 /error-docs/error-404.html

Yukarıdaki satır, herhangi bir geçersiz istek için sunucu tarafından 404 hatasının bildirilmesi durumunda görüntülenecek olan error-docs klasörüne yerleştirilen 'error-404.html' belgesini ayarlar. müşteri tarafından bir sayfa için.

rrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"

Yukarıdaki gösterim aynı zamanda normal bir html dosyasını temsil eden dizeyi yerleştiren doğrudur.

4. Apache sunucusu ortam değişkenlerini ayarlama/ayarlamayı kaldırma

.htaccess dosyasında, sunucunun web sitelerini barındıranlar tarafından değiştirilmesine izin verdiği genel ortam değişkenlerini ayarlayabilir veya ayarını kaldırabilirsiniz. Ortam değişkenlerini ayarlamak veya ayarlamak için .htaccess dosyalarınıza aşağıdaki satırları eklemeniz gerekir.

Ortam değişkenlerini ayarlama
SetEnv OWNER “Gunjit Khera”
Ortam değişkenlerinin ayarının kaldırılması
UnsetEnv OWNER

5. Dosyalar için farklı MIME türlerini tanımlama

MIME (Çok Amaçlı İnternet Multimedya Uzantıları), herhangi bir web sayfasını çalıştırırken tarayıcının varsayılan olarak tanıdığı türlerdir. Web siteniz için MIME türlerini .htaccess dosyalarında tanımlayabilirsiniz, böylece sizin tarafınızdan tanımlanan farklı dosya türleri sunucu tarafından tanınabilir ve çalıştırılabilir.

<IfModule mod_mime.c>
	AddType	application/javascript		js
	AddType application/x-font-ttf		ttf ttc
</IfModule>

Burada mod_mime.c, farklı MIME türlerinin tanımlarını kontrol etmeye yönelik modüldür ve sisteminizde bu modül yüklüyse, web sitenizde kullanılan farklı uzantılar için farklı MIME türlerini tanımlamak için bu modülü kullanabilirsiniz. böylece sunucu onları anlayabilir.

6. Apache'de Yükleme ve İndirmelerin Boyutu Nasıl Sınırlandırılır?

.htaccess dosyaları, belirli bir istemci tarafından web sitenize yüklenen veya indirilen veri miktarını kontrol etmenize olanak tanır. Bunun için .htaccess dosyanıza aşağıdaki satırları eklemeniz yeterlidir:

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

Yukarıdaki satırlar maksimum yükleme boyutunu, gönderilen verilerin maksimum boyutunu, maksimum yürütme süresini, yani bir kullanıcının yerel makinesinde bir web sitesini yürütmesine izin verilen maksimum süreyi, giriş süresi içindeki maksimum süre kısıtlamasını belirler.