Hangi php dosyaları güvenli?

4 Cevap php

Örneğin, CodeIgniter kullanarak, ve gerçekten sahip. Php dosyalarını ele alınmamıştır. Dizin yapısı. Php dosyalarını herhangi bir okunabilir mi? Değilse neden? Neden CI dizinde config.php göz değil mi? Sadece unix dosya izinleri var mı?

Teşekkür ederim.

4 Cevap

Ben bir 'Tarayıcı' açısından bu da gidiyorum. Eğer dizin bakış açısını görmek istiyorsanız, zombat cevabı bakmak.


CodeIgniter özellikle, muhtemelen onlar bir komut işlemek yerine 2 düzine komut böylece tek bir komut dosyası için tüm isteklerini yönlendiren bir .htaccess dosyasını kurdunuz.

PHP dosyaları bilgilerin hiçbiri müşteriye gönderilen alır bir 'sunucu tarafı' programlama dili olduğu için. Bu, istemci kodu göremezsiniz çünkü yo, istediğiniz bir HTML sayfası üretmek için herhangi bir yöntemi kullanın verir. Bu bir güvenlik aygıtı olarak iki katına çıkar.

Çoğu PHP durumlarda, geliştiriciler (web sitesi başlar) document_root üzerinde bir klasör içine kütüphane ve sınıfları inşa edecek, ve sonra sadece bu sınıfları çalıştırmak dosyalara koymak. Bu onlara bir kişinin belge yapısını bulmaya ve onları sistem hack hakkında bilgi verebilir dosyaları indirmek için bu bilgileri kullanarak herhangi bir şans olduğunu kesinlikle emin olmasını sağlar.

Bu yöntem aynı zamanda insanların sunucu üzerinde çalışan hangi dili umurumda değil sağlar. Tüm web sayfaları HTML oluşturulan, böylece tüm sunucu üretmek için ihtiyaç olan bir HTML dosyasıdır. Onlar Perl, Python, PHP, ya da başka bir dil tamamen geliştiriciler kadar kullanmak ister.

Genellikle, gibi dosya config.php herhangi bir çıkış yok. Bu nedenle, tarayıcı tarafından erişilebilir, ancak kullanıcı bir şey görmezsiniz.

Size endişe buysa kullanıcıları, .php dosyaların kaynak kodunu görmek asla. Sizin web sunucusu PHP işlemcisi sayesinde tüm .php dosyalarını geçecek; sadece output Hiç kullanıcıya gönderilen sizin .php dosyaları tarafından oluşturulan.

config.php Diğer .php dosyaları ile aynı dizinde olduğunu (ve genellikle) sonra hiçbir Unix dosya izinleri veya .htaccess şeyler oluyor. Bu sadece bir çıktı üreten bir dosyadır.

Eğer CodeIgniter'daki config.php göz atamazsınız neden sorunuza cevap bulmak için, çünkü Unix izinlerini değil ne de onu koruyan bir. Htaccess dosyası.

Tüm CodeIgniter PHP dosyaları sürekli "BasePath" için denetler dosyanın üstünde bir çizgi var. Eğer çerçeve üzerinden gidiyoruz zaman sabit sadece ayarlanır, bu nedenle çerçeve geçmeden bir dosyaya erişmeye çalıştığınızda, "BasePath" set olmayacak ve komut dosyası çıkacaktır.

Bu herkes Apache (. Htaccess dosyaları) kullanır beri dosyaları güvence CodeIgniter'ın taşınabilir yoludur.

Linux / Unix sistemi üzerinde PHP dosyaları her şey olduğu gibi aynı dosya izni kuralları izleyin. Eğer config.php dosyasına göz yapamıyorsanız, o zaman evet, kullanıcı, uygun dosya izinleri yok olarak kaydedilir.

Genellikle size webserver altında çalışan uid web yapısı içinde dosyaları okumak ve çalıştırmak için uygun izinlere sahip olduğunu böylece bir PHP projesi üzerinde izinleri kurmak istiyorum.

Kendim için, ben genellikle benim LAMP sistemleri üzerinde bir webdev grubu kurmak ve bu gruba apache kullanıcı koymak. Apache bunu yapmak için gereken ne yapabilirim ki ben bir PHP dosyası yapısı düzgün tüm grup izinlerini ayarlamak. Bu şekilde, bir kullanıcı tüm kendi web dosyaları sahibi olabilir ve webdev grup yapısına başka bir girişler kontrol etmek için kullanılabilir. Bu, birisi gidiyor ve, diyelim ki, veritabanı şifre almak için config dosyasını okuma çok kullanıcılı sistemlerde endişeleri azaltır.