PHP Projelerinde Güvenli Dosya Yapısı Nasıl Olmalı?

PHP projelerinde güvenli dosya yapısı, ziyaretçinin yalnızca yayımlanması gereken dosyalara erişmesini sağlar. Web sunucusunun belge kökü proje kökü olursa yapılandırma, günlük ve yedekler yanlışlıkla açığa çıkabilir. İlk tercih, ayrı bir public dizini kullanmaktır.
Örnek düzen
Proje kökünde app, config, storage, vendor ve public klasörleri bulunabilir. index.php ile CSS, JavaScript ve herkese açık görseller public içindedir. .env, veritabanı yedeği, log ve Composer dosyaları web kökünün dışında kalır. Framework'ünüzün önerdiği düzeni temel alın.
Yükleme ve çalışma dosyaları
Kullanıcı yüklemelerini tür ve boyut kontrolünden geçirin. İşlenecek özel dosyaları webden erişilemeyen storage alanında saklayın. Herkese açık medya sunulacaksa çalıştırılabilir betiklerin bu alanda yürütülmesini engelleyin. Dosya adını kullanıcı girdisine doğrudan güvenerek yol oluşturmayın.
İzin ve sırlar
PHP süreci yalnızca gerekli dizinlere yazabilmelidir; tüm projeye geniş yazma izni vermeyin. Gizli anahtarları kaynak koduna gömmeyin veya Git'e eklemeyin. Hata ayrıntılarını ziyaretçiye değil, erişimi sınırlı loglara yazın.
Yayın kontrolü
Tarayıcıdan .env, log, yedek ve vendor adreslerine erişmeyi deneyip engellendiğini doğrulayın. Belge kökünün public olduğundan emin olun. Bağımlılık güncellemesi, yedek ve geri alma işlemlerini dağıtım planına ekleyin.
Kaynak: Resmi belge.




