Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zabezpieczenie pobierania pliku
CamLinux
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 1.04.2012

Ostrzeżenie: (0%)
-----


Witam,
od godziny męczę się i szukam sposoby, aby zapezpieczyć plik powiedzmy hasłem, znalazłem taki skrypt, do folderu gdzie jest dany plik wrzucam plik .htaccess i w nim daję: deny from all.
I jest ok pliku linkiem pobrać sie nie da, ale chciałbym dać możliwość w inny sposób, taki skrypt znalazłem:
  1. if(isset($_GET['pobierz'])) {$pobierz=$_GET['pobierz'];
  2. $sciezka=basename('zabezpieczony_folder/'.$pobierz);
  3. if(file_exists($sciezka)) {
  4. $open=fopen($sciezka,'rb');
  5. flock($open,1);
  6. $zawartosc=fread($open,filesize($sciezka));
  7. flock($open,3);
  8. fclose($open);
  9.  
  10. header('Content-Type: application/octet-stream');
  11. header('Content-Length: '.strlen($zawartosc));
  12. header('Content-Disposition: attachment; filename='.$pobierz);
  13. echo $zawartosc;
  14. exit;}}


Niestety to nie działa, wie ktoś dlaczego ? Może jest inny sposób...
Zależy mi z góry dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
memory
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

Ostrzeżenie: (0%)
-----


chmod 600 - zablokowany, chmod 644 - odblokowany plik
chmod
Go to the top of the page
+Quote Post
sylwekqaz
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 6
Dołączył: 5.03.2011

Ostrzeżenie: (0%)
-----


w drugiej linijce masz basename który robi za zabezpieczenie przed chociażby przed '../config.php'
powinno być tak
  1. $sciezka='zabezpieczony_folder/'.basename($pobierz);
Go to the top of the page
+Quote Post
Pilsener
post
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


A próbowałeś:
  1. echo $sciezka;
?


I tak w ogóle to kiepski ten skrypt i całe podejście (IMG:style_emoticons/default/thumbsdownsmileyanim.gif)

Np. to:
  1. $open=fopen($sciezka,'rb');
  2. flock($open,1);
  3. $zawartosc=fread($open,filesize($sciezka));
  4. flock($open,3);
  5. fclose($open)


Da się prościej:
  1. $zawartosc = file_get_contents($sciezka);


Cytat
w drugiej linijce masz basename który robi za zabezpieczenie przed chociażby przed '../config.php'
- no tak, bo trzeba się jakoś tam zabezpieczyć przed niewłaściwymi parametremami ( np. ścieżka zamiast nazwy) niż dopuścić tylko ten właściwy (IMG:style_emoticons/default/smile.gif)

Ten post edytował Pilsener 9.06.2012, 22:43:53
Go to the top of the page
+Quote Post
CamLinux
post
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 1.04.2012

Ostrzeżenie: (0%)
-----


sylwekqaz dzięki Ci wielkie (IMG:style_emoticons/default/Lkingsmiley.png) wszystko śmiga (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 06:55