Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak zabezpieczyć pliki przed pobieraniem?
Forum PHP.pl > Forum > Przedszkole
d.stp
Witam, jaki jest najlepszy sposób na zabezpieczenie plików (.rar) przed ich ściągnięciem? Bo mam serwis, który po wysłaniu SMSa daje możliwość pobrania czegoś, ale jak ktoś zna link to może pobrać ten plik bez żadnego problemu ;/
nospor
1) Pliki mają być poza publicznym dostęp
2) Pliki ma zwracac skrypt .php, który najpierw sprawdzi, czy dana osoba ma do pliku dostep
3) W zasadzie to juz wszystko
d.stp
Poza publicznym dostępem? biggrin.gif czyli gdzie? Np. ../ katalogiem htdocs?

Jak najlepiej sprawdzać czy dana osoba ma do niego dostęp?
nospor
no jesli katalog powiedzmy pub jest dostepny publicznie (przez przegladarke) to w nim masz tego nie trzymac. masz to trzymac gdzie indziej. No tu nie ma żadnej filozofii...

Jak sprawdzac? No sam pisałeś ze wysyla sms. Skoro wysyla sms to chyba masz jakiś kod, ktory odbiera info czy wysłał, czy wysłał poprawnie itp... nieprawdaż?
!*!
Cytat
Poza publicznym dostępem? czyli gdzie? Np. ../ katalogiem htdocs?

A jaki masz katalog główny na serwerze? W większości jest to public_html i w nim masz index. Pliki rar umieść katalog wyżej.

Cytat
Jak najlepiej sprawdzać czy dana osoba ma do niego dostęp?

  1. if(jest_zalogowany_moze_pobrac){//pobieranie pliku?}
d.stp
Katalog główny to htdocs czyli jak stworzę folder nad nim i wrzucę tam pliki to będzie dobrze?
sowiq
Będzie dobrze.

Możesz też zrobić publicznie dostępny katalog + zamknąć dostęp przez dodanie tam pliku .htaccess:
Kod
deny from all


A samo pobieranie pliku najłatwiej chyba zrobić za pomocą funkcji readfile
d.stp
a nie po prostu header(""); ?
sowiq
A co chciałbyś ustawić w nagłówku? smile.gif

Polecam najpierw poczytać:
- header
- readfile
- Allow logged in user to Download File in Php else nobody can't
- Wujek dobra rada
d.stp
No dobra, tylko że jak mam się dostać poza katalog główny?
nospor
facepalmxd.gif
readfile('sciezka/za/katalogiem/glownym/plik.rar');
d.stp
Dalej mam problem... pliki mam normalnie w folderze downloads w htdocs i do tamtego folderu wrzuciłem plik htaccess z regułą DENY FROM ALL, ale teraz jak chcę pobrać plik to zajmuje on 0 bajtów...

Kod:

  1. $file = 'FULL_ADRESS downloads/'.$_file;
  2.  
  3. header('Content-Description: File Transfer');
  4. header('Content-Type: application/octet-stream');
  5. header('Content-Disposition: attachment; filename='.basename($file));
  6. header('Content-Transfer-Encoding: binary');
  7. header('Expires: 0');
  8. header('Cache-Control: must-revalidate');
  9. header('Pragma: public');
  10. header('Content-Length: ' . filesize($file));
  11. flush();
  12. readfile($file);


Jak usunę plik htaccess to jest ok...
StrefaPi
może
  1. order deny,allow
  2. deny from all
  3. allow from 127.0.0.1
nospor
$file = 'FULL_ADRESS downloads/'.$_file;
Tu ma być ścieżka dyskowa do pliku a nie URL.
!*!
Cytat
pliki mam normalnie w folderze downloads w htdocs

Tylko po co ten temat, skoro pliki masz w głównym katalogu?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.