• 09-03-2020, 18:06:33
    #10
    YILMAZ adlı üyeden alıntı: mesajı görüntüle
    .env'yi atmiyorsunuz diye bir sey olamaz hocam static config ayarlari env'de tutulur. DB, redis bilgileri gibi.
    Farkli kullanim tercih ediyorsunuzdur ona bir sey diyemem ama proje canli cikarken atilmaz diye bir tanim kullanilmasi cok yanlis.

    .env doyasi zaten okunabilir bir konumda olmamali. Bunun icin serverda root dizini olarak laravel projesinin altinda public dizin kullanilir.

    Alt yorumlarda bahsettigin hatalar public host kullanmaya calisanlarin yaptigi yanlis konfigurasyondan dolayi oluyor.

    Normal sartlar altinda root dizini public oldugun ucun .env alt dizinde kaliyor ve public bir dosya olmuyor.
    Hocam MySQL, Redis gibi bilgiler .env dışında config ->database ve cache dosyalarında da tanımlanabiliyor. Zaten esasen okudunuğu yerler orası. .env silerseniz database.php den okur ama database.php silerseniz hata alırsınız..

    Proje canlıya çıkarken .env dosyasını atmıyorsunuz yazmışım. Haklısınız hatalıyım. .env dosyasına dışarıdan erişilemeyeceğinden emin olarak .env kullanılabilir. Üstteki mesajımda belirttiğim gibi bende projelerde .env üzerinde tutuyorum. Fakat bir kaynaktan riskli olabileceğini okuduğum için bu şekilde belirttim.


    Sizinde belirttiğiniz gibi public klasörü root olarak tanımlanmadığında .env veya htaccess ayarları doğru ayarlandığında erişilemiyor
  • 09-03-2020, 19:07:19
    #11
    Your .env file should not be committed to your application's source control, since each developer / server using your application could require a different environment configuration. Furthermore, this would be a security risk in the event an intruder gain access to your source control repository, since any sensitive credentials would get exposed.

    Her geliştiricinin / sunucunun uygulamınızı kullanırken farklı çevre ayarlarına sahip olabileceğinden dolayı, .env dosyanız uygulamınızın kaynak kontrol'üne (git repo'nuza) atılmamalı.Dahası, her hangi hassas sertifikaların ifşa olabileceğinden dolayı bu kaynak kontrol deponuza giriş yapma yetkilerine sahip olma olayı gibi bir güvenlik riskini oluşturabilir.

    Yani buradaki bahsedilen olay, uygulama geliştirdiniz, bir platform üzerinden sattınız ve git repo'nuz gizli, sadece satın alan kişilere veriyorsunuz, uygulamayı da geliştirmeye devam ediyorsunuz, .env dosyasında google cloud api'leriniz de var test işlemlerini de yaptığınız, git repo'nuza atmayın ki kurulumu yapan kişi sorun yaşamasın, veritabanı gibi bilgiler orda farklı olur, ve google cloud api keyleriniz de ifşa olmuş olur diye uyarıyor.

    .env dosyası güvenlik riski yaratır gibi bir cümle değil bu. verdiğiniz adreslerde ise yanlış kurulum söz konusu, laravel de yayın dizini olarak public klasörü gösterilmeli, sanırım siteyi paylaşımlı bir hosting'de yayın etmişler, public dizinindeki dosyaları ana klasöre taşıyıp runtime php yolunu değiştirerek laravel root dizininden vermişler. Tamamen yazılımcının hatası, burada .env dosyasından ötürü bir güvenlik zaafiyeti yok.

    Ayrıca laraveldeki bu cümleyi aldığınız sayfada detaylı olarak .env dosyasının yayın sunucusunda nasıl yapılandırılması gerektiği anlatılıyor, böyle bir risk olsa .env hiç kullanılmaz config.php üzerinden yapılırdı. Laravelde .env kullanmak için vendor'e paket ekleniyor, framework üzerinden desteği sağlanıyor fln, bu kadar uğraşa girilmez.

    Sizin ısrarınız üzerine ben mi güncel değilim kaygısı ile google'da biraz araştırdım, ancak dediğinizi destekleyen her hangi bir uzman makalesi yok. Kısacası .env dosyasının silinmesini gerektirecek bir durum söz konusu değil, tek uyarılan konu yayın klasörüne koyulmaması yönünde ki sunucunuzu ayarladıktan sonra nokta ile başlayan bu gizli dosyaların yayınını kapatırsanız yine dışarıdan erişim mümkün değil.
  • 09-03-2020, 21:13:33
    #12
    @iMiral; hatamı düzelttiğiniz için teşekkürler hocam.