PHP / Apache resim görüntüleme izinleri

2 Cevap php

Ben bir giriş sistemi ile bir PHP site var, ve sadece belirli adları belli, görüntüleri bir özellik yapmaya çalışıyorum. Birisi girerse) bu 't resmi görebilmek için izin aren / kullanıcılar arasında ayrım yardımcı, ve b) değil, çünkü ben ne çalışıyorum, sadece. Htaccess dosyasını değiştirerek daha fazla yer olduğunu düşünüyorum (fiziksel bir dizinde dosya değil, bir DB metin, vb beri) resmin tam URL ("directory/images/photos/230ru0q0238rn230nd_asdi0nqn8.jpg") hala görüntü görebilirsiniz. Yine,. Htaccess üzerinden kısıtlayan bir bütün, ya da tüm dosyalar olarak dizin kısıtlamak olur, bu yüzden ne kadar işe yarayacağını anlamaya olamaz. İdeal olarak, tüm görüntüler onların doğrudan URL yoluyla doğrudan erişmeye çalışıyor tarafından engellenmiş olur ve kullanıcının oturumu / username geçerli ise görüntü sadece <img> etiketleri arasında görünür, başka da bir hata mesajı alıyorum.

Ben terim ACL duydum ama bu ben yapmaya çalışıyorum ne ile ilgili olduğundan emin değilim.

2 Cevap

Yetkilendirme ve ACL düzeni değişebilir, ancak sorunun temel hedefi gerçekleştirmek için:

  • PHP okuyabilir eşik dışındaki bir web erişilebilir dizininde görüntüleri koyun.
  • (Bu, dosyalara doğrudan erişimi engeller varsayarak, önceki adımı ortadan kaldırabilir) .htaccess bir komut tüm istekleri yeniden yazmak için kullanın.
  • Isteyen kullanıcı istenen görüntüyü onaylayın.
  • readfile() (diğer işlevleri ya da çeşitli) çıkışına görüntü kullanın.

Ne yapabilirim bir akışı gibi bir görüntü verir basit bir bağlam oluşturmaktır. Çıkış görüntü kimliği (ya da bazı tanımlayıcı) örn bağlıdır:

viewImages.php?imageId=234643

kullanıcı (büyük olasılıkla $ _SESSION ile) yetkili / açtıysa, viewImages.php denetler, ve eğer öyleyse, o readfile kullanarak muhtemelen tarayıcıya görüntü gönderir.