Nasıl php kullanarak dosyaları indirme kamu engellerim?

2 Cevap php

Ben sadece yetkili kullanıcıların belli bir klasöre dosya yüklemek için izin veren bir komut dosyası var.

Ancak ben giriş olmadan özgürce indirmesini engellemek için nasıl bilmiyorum.

Ben php çözüm gerekir.

Etrafa googled ama hiçbir şey yalındır henüz var.

Şu anda benim belge kök ben bir klasör denilen yönetici ve içinde admin yüklenenler adında bir alt klasör var. Yani sadece yönetici rolü yükleyebilirsiniz. Editör ve yönetici hem de indirebilirsiniz. Ben bu durumda ne yapmalıyım?

Bildiriniz.

2 Cevap

Kamu webroot dizini dışında bir yere dosyaları koymak, ya da dosyaları değil hizmet için sunucusunu yapılandırın. Sürece sunucu mutlu geçerli bir URL ile her şeyi hizmet edecek şekilde, bu önlemek için PHP ile yapabileceğiniz bir şey yok.


Dosyalarınızı /public_html/ klasöründe ise, bu klasörün dışına almak ve örneğin koyun /secret_files/, böylece dizin yapısı şöyle:

public_html/
    index.html
    admin/
        admin_index.php
secret_files/
    my_secret_file.txt

Web sunucusu yalnızca /public_html/ dizindeki dosyaları hizmet için yapılandırılmış, bu yüzden kimse dizinleri outside (teknik terim above) bu erişimine sahip olacaktır.

Hala, bu dosyaları indirmek için birini etkinleştirmek cletus anlaşılacağı gibi yapmak ve readfile bir PHP komut dosyası aracılığıyla dosyaları "elle hizmet" için kullanın. PHP hala dosya sisteminin bu diğer bölümlerine erişimi olacak, böylece bir bekçi olarak kullanabilirsiniz.