Apache URL Rewriting ve HTTP Session Kullanarak İstenilen Dosyaya Erişimi Kısıtlama

Apache URL Rewriting ve HTTP Session Kullanarak İstenilen Dosyaya Erişimi Kısıtlama
Apache URL Rewriting ve HTTP Session Kullanarak İstenilen Dosyaya Erişimi Kısıtlama
Bu Yazıyı Değerlendir

Apache, dünya genelinde birçok web sunucusunun temelini oluşturuyor. Bundan dolayı en yaygın kullanılan sunucu işlemcisidir ancak bu işlemci günümüz ihtiyaçlarını karşılayamadığı için birçok modül ile bu ihtiyaçları karşılamaya çalışıyor. Bugünkü yazımda ise bu modüllerden biri olan mod_rewrite modülünden faydalanacağız.

Gel gelelim asıl konumuza,çok fazla dosya paylaşan, paylaştığınız bu dosyaları çok fazla kullanıcı tarafından indirilen bir internet sitesine sahipsiniz. Bir süre sonra bu kadar fazla kullanıcı tarafından dosyaların hiçbir kontrole tabii olmadan indirmeleri sunucunuza hem yük bindirdiği gibi hem de ciddi bir güvenlik zaafiyeti de oluşturacaktır.

Bir de bütün bu yük yetmezmiş gibi bir de sizden beslenen bazı çakallar ortaya çıkacak ve  sizin paylaştığınız dosyayı kendi sunucusuna alıp,sunmak yerine sizin sunucunuz üzerinizden paylaşmaya başlayacak o zaman sunucunuza haddinden fazla bir yük bindirilmiş olacak. Bunun önüne geçebilmek için oldukça basit bir yöntemden bahsedeceğim bu yazımda.

Apache URL Rewriting ve HTTP Session Kullanarak İstenilen Dosyaya Erişimi Kısıtlama

Sunucunuzda ki sizin belirlediğiniz uzantıya sahip ve yine sizin belirleyeceğiniz yetkilere sahip kullanıcılar tarafından bu dosyaların indirilmesini sağlamak istiyorsanız hem php hem de apache’nin nimetlerinden faydalanmanız gerekiyor. İnternet sitenizde ki bir dosyayı doğrudan internet tarayıcısının adres satırına yazıp, çalıştırdığımızda hiçbir kısıtlama olmadan o dosyayı indirebiliyoruz.

Bazı çakallar kendi sunucusuna yüklemek yerine sizden alıp, sizin sunucunuz üzerinden indirilmesini sağlayabiliyorlar bu durum haliyle sizin sunucunuza ekstra bir yük bindiriyor. Bunun önüne geçebilmek ve sadece sizin belirlediğiniz yetkilere sahip kullanıcıların indirmesini sağlamak istiyorsanız ilk önce Apache’nin URL Rewriting yani mod_rewrite özelliğini kullanacağız.

Bu bahsettiğim özelliği birçoğunuz biliyorsunuzdur diye tahmin ediyorum bilmiyorsanız .htaccess dediğim de ha tamam onu biliyoruz canım diyeceksiniz. Yapacağımız ufak bir işlem ile belirleyeceğimiz uzantıya sahip dosyaya gelen istekleri yine bizim belirleyeceğimiz bir php dosyasına yönlendireceğiz ve yönlendirdiğimiz php dosyasında da yine bizim belirleyeceğimiz yetkilere sahip kullanıcılar indirebilecekler o dosyayı bunu da HTTP Session özelliğinden faydalanarak yapacağız.

1.Adım: URL Rewriting ile Gelen İstekleri PHP Dosyasına Gönderme (.htacces ile)

İstediğimiz dosyanın uzantısı mp3 olsun ve bu dosyaya doğrudan gelen indirme isteklerini, mod_rewrite özelliği ile yine bizim belirleyeceğimiz php dosyasına gönderelim daha sonra o php dosyasında http session kullanarak izin kontrolü yapıp indirme işlemi yaptırtacağız.

Aşağıda ki kodu .htaccess dosyanız var ise uygun bir yere ekleyin yok ise sitenizin ana dizinine bir adet oluşturun.

2.Adım: .htaccess ile Gelen İsteği PHP HTTP Session İle Kontrol Etme ve Yetkilendirme

.htaccess dosyanın bulunduğu dizine kontrolmp3.php adında bir php dosyası oluşturuyoruz ve bu oluşturduğumuz dosya içerisine aşağıda ki kodları ekliyoruz ve gerekli alanları kendimize göre düzenliyoruz.

Yazımda yapmış olduğum örnek ile mp3 uzantılı dosyalara yetkisi olmayan kullanıcılara  erişimi kısıtlamış olduk. Siz ihtiyaçlarınıza göre bu örneği  değiştirebilir ve bu mantığı kullanarak farklı dosyalarınızı belli kullanıcılara göre erişim sınırlaması yapabilirsiniz.

Kodları geliştirmek ve daha da spesifik hale getirmek sizin elinizde, ben basit bir örnek ile olayı anlatmaya çalıştım umarım işinize yarar.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir