Çok riskli site köküne altında PHP sitede bir XML dosyasında yapılandırma değişkenleri depolamak?

3 Cevap php

Ben Magento docroot üzerinde güvenli olmayan bir XML dosyasında MySQL bağlantı bilgilerini saklar fark ettik. Bu .... de tehlikeli görünüyor.

XML http://www.domain.com.au/library/config.xml dünyayı sizin özel bilgilerinizi gösterecektir yazarak, bir şey hariç, yapılandırma verilerini saklamak için kullanışlı bir yol gibi görünüyor!

Ben önde gitti ve bir XML dosyası kullanılan ve benim. Htaccess dosyasına bu ekledi.

<Files ~ "\.xml$"> // regex files that end with xml extension
Order allow,deny 
Deny from all // don't show them
</Files>

Ben şimdi bu was Mutlu, şimdi ben de emin değilim. . Htaccess dosyası yanlışlıkla silinirse ne olur / bozuk (insan hatası dışında oluyor) ve ne olmayan bir apache sunucu üzerinde uygulama yerleştirmek istediğiniz bir gün ... Her sunucu XML dosyalarını engellemek için eşdeğer olması ve yoksa eğer onlar yapmak, onlar. htaccess can (ve sadece bir httpd.conf dosyası) gibi bir klasör düzeyi değiştirilebilir.

Benim soru olası sorunları (özel verilerini açığa) ağır basmaktadır XML kolaylık (güncellemek için kolay, onarmak gerek tasarımcılar o kadar çekinmeye olmaz) demek ... nedir?

3 Cevap

Ben bir biçimde bizzat sadece mağaza yapılandırma dosya bilgileri doğrudan erişilebilir formatta veya konumda değil şu ediyorum. Yani docroot yukarıdaki XML formatını kullanın veya PHP $ config ['Değişkenadı'] = 'değer' formatını kullanmak istiyorum ya. Daha sonra yöntem, sadece direkt olarak adlandırılan boş bir beyaz sayfa if (bu kadar uzun süre tüm PHP ve hiçbir HTML içeren ve dışarı yankı yok gibi) hale getirecektir.

Gallery, vBulletin, Joomla ve tüm bahsettiğim ikinci yöntemi kullanın. Ben PHP ile ilgili diğer sorulara önce bu projeleri söz ettik biliyorum, ama yaygın olarak kullanılan ve projeler arasında kabul ettiği bir yöntem olarak görünmektedir.

Kısa cevap, hayır öyle değil. Ama daha iyi bir soru olurdu. Bir yapılandırma dosyasında saklanır değilse bunu nerede devam edecek?

Ben tamamen bu konuda inventix katılıyorum ama aynı zamanda da kombine edilmelidir 3. bir seçenek sunuyoruz

yapılandırma bilgisi depolama dosyayı adlandırın

. Htanything.whatever

as server wide all files starting .ht are unreadable by external users {this is why htaccess is always .htaccess}

personaly i sadece mağaza config dosyalarını içerir ve belge kök dışında fonksiyonu libraryies, ama $ includesfolder yazılımı kullanan bir kişi tarafından belge-ağaç içinde hareket edilmelidir örtmek bazı connot nedenle de her zaman onlara. htnaming kuralını kullanır anlamak Böyle bir sunucu