Stranice: [1]   Idi dole
  Štampaj  
Autor Tema: Autentifikacija  (Pročitano 2135 puta)
Anonymous
Gost
« poslato: Subota, 22. Septembar 2001. 18:56:00 »

zna li neko kako resiti ovaj problem:

1) u direktorijumu, recimo /test, se nalaze .zip fajlovi koji su  zasticeni .htaccess-om da im se ne bi moglo pristupiti direktno,

2) u drugom direktorijumu se nalazi php skript koji iscitava prethodni dir i generise linkove ka svakom pojedinacnom fajlu,

3) klikom na neki od linkova skript bi trebao da izvrsi autentifikaciju (sto znaci da PREDUHITRI ISKAKANJE PROMPTa za ubacivanje username i pwd-a) i posalje zeljeni .zip fajl

pokusao sam sa:

   if( !($passwd = @fopen( "$path/.htpasswd", "r" )))
   {  echo "Ne mogu da otvorim datoteku koja sadr
Sačuvana
acim
Administrator
Elitni član
*****
Van mreže Van mreže

Poruke: 1.604



Pogledaj profil WWW
« Odgovor #1 poslato: Nedelja, 23. Septembar 2001. 13:37:00 »

Ovde se radi o nerazumevanju HTTP protokola. Vidis, pri pozivanju gornjeg skripta, on ce u najboljem slucaju poslati Location heder koji ce novi request browsera usmeriti na novu lokaciju koja je zasticena sifrom. Da li je i ovaj gornji skript zasticen sifrom? Ukoliko je odgovor "da", onda u .htaccess fajlovima treba koristiti isti Realm, tako da Apache nece ponovo traziti autentikaciju obzirom da je isti Realm vec autentifikovan u prethodnom requestu i browser vec ima kesiranu username/password kombinaciju koju ce poslati serveru automatski. No, predlazem ti da promenih kompletan koncept ovog skripta. Umesto toga, neka ovaj PHP otvori binarne fajlove, posalje "Content-type" heder koji ce opisati sadrzaj i zatim poslati ove fajlove. Time ces kompletno sakriti imena, a cak se fajlovi ne moraju nalaziti u okviru Web root stabla, vec mogu biti bilo gde u fajl sistemu. Samu autentikaciju je dovoljno izvrsiti pri pristupu gornjem, odnosno modifikovanom gornjem skriptu.

Umesto Location hedera, mozes da uradis sledece:

Header ("Content-Type: application/octet-stream");
Header ("Content-Length: " . filesize("/putanja/ime_fajla"));
Header ("Content-Disposition: attachment; filename=ime_fajla");
readfile("/putanja/ime_fajla");

Time ce automatski zapoceti download.
Sačuvana

Boban Aćimović, urednik linux.rs
Stranice: [1]   Idi gore
  Štampaj  
 
Prebaci se na:  

?>