Http üzerinden bir dosyaya doğrudan erişimi engellemek ama php script erişim sağlar

5 Cevap php

Ben bir tampon içine benim dosyaları (pdf, doc, flv, vb) yükleme ve bir komut dosyası ile benim bunları kullanıcılara hizmet ediyorum. Ben script buna doğrudan erişime izin dosyaya erişmek değil muktedir gerekir. Nedir bu elde etmek için en iyi yolu nedir? Ben izinlere sahip bir şey yapıyor ya. Htaccess ile dizin kilitleme olmalı?

5 Cevap

Güvenli yolu Damien önerilen gibi, web kök dizini dışında kendinize tuttu istediğiniz dosyaları koymaktır. Web sunucusu yerel dosya sistemi ayrıcalıkları değil, kendi ayrıcalıkları şöyle Bu çalışıyor çünkü.

Ancak, sadece web kök erişim vermek hosting firmalarının bir yeri vardır. Hala dosyaları HTTP isteklerini önlemek engelleyen bir. Htaccess dosyası tüm iletişim ile kendileri tarafından bir dizine koydu. Örneğin,

Order deny,allow
Deny from all

Dizinin yerel izinleri web sunucusu dosyaları okumak ve çalıştırmak için izin çünkü web sunucusu, ve bu nedenle sunucu tarafında dil, hala onları okumak mümkün olacak.

Şerefe.

O benim ini dosyalarına URL'den doğrudan erişim engelledi nasıl. Kökü .htaccess dosyasında aşağıdaki kodu yapıştırın. (Ekstra bir klasör oluşturmak için gerek yok)

<Files ~ "\.ini$">
  Order allow,deny
  Deny from all
</Files>

benim settings.ini dosya kök ve bu kodu olmadan www.mydomain.com / settings.ini erişilebilir

Dosyaları PHP dosyası olarak aynı sunucuda mı? Eğer öyleyse, sadece web kök dışına dosyaları tutmak ve PHP komut onlar depolandıkları yerde okuma izinleri olduğundan emin olun.

Size erişiminiz varsa httpd.conf dosyası (ubuntu o / etc/apache2 dizinde olduğu), aynı satırları eklemek gerekir ki yapacağınız belirli bir dizindeki .htaccess dosyasına. Bu, (örneğin) aşağıdaki gibidir:

ServerName YOURSERVERNAMEHERE
<Directory /var/www/>
AllowOverride None
order deny,allow
Options -Indexes FollowSymLinks
</Directory>

Eğer bilgileri kontrol etmek istediğiniz her dizin için bunu yapın, ve tüm erişimi yönetmek için tek bir noktada bir dosya olacak. Bu yukarıdaki örnekte, ben, / var / www kök dizini için yaptım.

Bu seçenek, özellikle paylaşılan barındırma dış kaynaklı barındırma mevcut olmayabilir. Ama birçok .htaccess dosyaları ekleyerek daha iyi bir seçenektir.

disable Directory browsing

Seçenekler Tüm - Endeksleri