Sadece benim web uygulaması aracılığıyla tarayıcısı üzerinden dosya sistemini indirmeden sınırlayıcı nasıl

3 Cevap php

Örneğin ben, ben arama motorları ya da kamu kullanıcılardan gizli bazı dosyalar gerekir ve sadece özel kullanıcılar onlara ulaşmak ve indirebilirsiniz, bu benim web uygulama olmadığı zaman doc dosyaları herhangi erişimi engellemek için en iyi yol gerekir.

Ben DB kullanımını artırmak için değil amacıyla DB dosya sisteminde değil, dosyaları kaydetmek istiyorum.

3 Cevap

Sen (örneğin kök web dizini bir kardeş gibi) bir URL üzerinden erişilebilir edilemez bir dizinde, dosya sistemi dosyalarınızı saklayabilirsiniz. Bu doğrudan erişimi engellemek olacak.

Sonra, belirli bir dosya için sorgulandığında, kullanıcı bu dosyayı erişip erişemeyeceğini kontrol ve içerik türü için readfile (ile birlikte header ile gönderir, bir PHP komut dosyası yazmak ve içerik kullanım).

Eğer "özel kullanıcılar" derken sadece ben bu kullanıcılar bir şekilde doğrulanmış demektir varsayarak yaşıyorum. Sen web dizini dışında bu dosyaları saklamak ve daha sonra PHP / Perl / Your_Favorite_Programming_language yoluyla onları hizmet verebilir.

Bu kullanıcı kimlik doğrulaması eğer bir bağlantı eğer öyleyse, komut dosyası aracılığıyla dosyayı sunmak, denetleyen bir komut dosyası neden olabilir.

Php, kullanıcı kimlik doğrulaması sonra, siz kullanabilirsiniz:

header('Content-disposition: attachment; filename=movie.mpg');
header('Content-type: video/mpeg');
readfile('/full/path/to/your/files/movie.mpg');

Sadece webroot dışında o dizine yapmak unutmayın ve komut (genellikle apache altında kimse,) olarak çalıştırmak aynı kullanıcı izinlerini ayarlamak için.

Robots.txt izin / belirli HTTP kullanıcı maddeleri engellemek için bir yoldur. Ama en güvenli yolu bu değil. Bu web uygulaması giriş izin temel kimlik doğrulaması kullanabilirsiniz.