Yetkili php kullanıcılar için dosya erişimini kısıtlamak

3 Cevap php

Ben göze batan bir güvenlik açığı ile bir uygulama miras aldım.

Bu oturum tabanlı güvenlik vardır, ancak dosya yüklenenler (kullanıcı özgü olan) herhangi bir şekilde güvenli değildir ve genel dosya ağacında depolanır.

Filenames tahmin etmek onları zor yapma, gibi herhangi bir kongre takip yok, ama veri hassas ve dolayısıyla ben yetkisiz dosya erişimini engellemek için bir güvenlik önlemi uygulamak gerekir.

Dosyalarının konumunu hareket gerçekten bir seçenek değildir, bu yüzden bir php işleyicisi script isteklerini iletmek için bir htaccess çözüm bakıyorum.

Herkes bu tür bir şey veya herhangi iyi bir alternatif çözümlerini uygulama deneyimi var mı? Ben bu alanda mücadele ediyorum gibi. Htaccess sözdizimi belirli örnekler büyük takdir.

3 Cevap

Onları hareket bir seçenek değil gerçekten neden bir işleyici için onlara isteklerini bastırıyor onlar saklandığı nereye artık önemli gelir çünkü, anlamıyorum. Ama sahnede adamsın.

. Htaccess gibi görünüyor:

RewriteEngine on
RewriteRule path/to/where/these/files/live/(.*) /handlerscript.php/$1

Sonra $_SERVER['PATH_INFO'] dan kalan dosya yolunu ve adını pick up.

Peki, sizin. Htaccess aşağıdaki ekleyerek belirli bir klasör için apache ayrıştırmak. Jpg dosyası en yapabilirdiniz

AddHandler php5-cgi .jpg

o zaman kaos sizi Recomending ve belli bir doğrulama yaptığını yolu, sonra sadece doğru resim ile birlikte jpeg başlıkları dönmek isteği ayrıştırmak için bir php dosyası ayarlayabilirsiniz göstermek ister u-cekti

Burada bir örnek

<?php
if($validUser)
    {
    header("Cache-control: No-cache");
    header("Pragma: No-cache");
    header("Content-Type: image/jpeg");
    //correct picture address
    $img = imagecreatefromjpeg("2326_b_lil.jpg");
    imagejpeg($img);
    }
    else
    {
    //code for error image
    }
?>

Eğer daha kapsamlı bir örnek istiyorsanız, lütfen bana bildirin

Ben tamamen bir tarayıcıdan gerçek görüntülere erişimi kısıtlamak için htaccess kullanın, sonra görüntüleri hizmet edecek bir senaryo yazmak gerekebilir düşünüyorum.

Script, görüntüye web yolunda almak kullanıcı erişimi varsa karar, sonra tarayıcıya gerçek bir görüntü beslemek fpassthru gibi bir şey kullanabilirsiniz.

Görüntülere tüm başvurular hizmet komut başvuru, ancak modifiye edilmesi gerekir.

So instead of accessing the images with /images/123/5423453245.jpg, it would be /image.php?images/123/5423453245.jpg

Veya buna benzer bir şey.