Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Zabezpieczenie plikow przed pobraniem, bez autoryzacji
jol.us_
post
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

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


Szukam sprawdzonej metody ograniczenie upload'u plikow. Chodzi o to aby osoba, ktora nie przeszla autoryzacji nie mogla pobrac plikow z okreslonego katalogu. Jezeli ktos przejdzie autoryzacje to ma dostep do pliku poprzez zwyklego linka.

Do tej pory zabezpieczalem pliki umieszczajac je w bazie danych i sprawa byla prosta, ale teraz musze to trzymac w katalogu na serwerze. Myslalem zeby moze nadac jakas tymczasowa nazwe w tymczasowym katalogu ale skad niby mialbym wiedziec kiedy taki plik skasowac (kiedy zakonczy sie pobieranie pliku).

Googlanie i przekopanie postow na forum nic nie dalo (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
popo
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 15.07.2005

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


proponuje trzymac pliki w katalogu chronionym przed dostepem przez www i wysylac je za pomaca skryptu php tak samo jak z bazy tyle ze czytasz plik z katalogu zamiast z bazy a w bazie pamietasz tylko sciezki z nazwami plikow.
Go to the top of the page
+Quote Post
jol.us_
post
Post #3





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

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


A dalo by sie cos wiecej. Jaki to niby mialby byc katalog? Poza httdocs czy po prostu odpowiedni chmod? W jaki sposob wyswietlic linka? Czy da sie np. wyswietlic tak zabezpieczonego jpg'a czy nie? Moze jakis pseudokod?

Ten post edytował jol.us_ 14.04.2006, 20:27:10
Go to the top of the page
+Quote Post
dtb
post
Post #4





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


tworzysz tabelke w bazie danych o nazwie 'file_list':

id - unikalne id pliku
file - url do pliku

a potem: pobierz.php?id=ID_PLIKU aby rozpoczac sciaganie

kod pobierz.php:

  1. <?php
  2. if (...) { // tu sprawdza czy user jest zalogowany
  3. $r = mysql_fetch_array(mysql_query('SELECT * FROM file_list WHERE id='.$_GET['id'].''));
  4. if (file_exists($r['file'])) {
  5. header("Content-Type: application/force-download\n");
  6. header('Content-Disposition: attachment; filename='.$r['file']);
  7. readfile($r['file']);
  8. } else {
  9. header("HTTP/1.0 404 Not Found");
  10. }
  11. } else {
  12. header("HTTP/1.0 404 Not Found");
  13. }
  14. ?>
Go to the top of the page
+Quote Post
jol.us_
post
Post #5





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

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


A katalog? chmod? Jesli tak to jaki?

A jesli autoryzacja bedzie na sesji czy tez ciastkach to nie dostane bledu w stylu naglowek juz zostal wyslany?
Go to the top of the page
+Quote Post
dtb
post
Post #6





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


z tego co pamieta header'a nie mozna uzyc, gdy juz wyslales do przegladarki jakis tekst, a my nic nie wysylalismy przedtem.
pliki mozesz trzymac w katalogu 'files' a w bazie danych takie cos:

id | file
1 | files/plik.rar
2 | files/download.exe

chmod jest nie istotny. 644 powinno wystarczyc.

Ten post edytował dtb 14.04.2006, 20:55:49
Go to the top of the page
+Quote Post
jol.us_
post
Post #7





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

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


chmod jest chyba jednak istotny, aby nikt nie tafil przez przypadek w dobry katalog i dobra nazwe pliku. Pewnie to by bylo trudne, ale nie niemozliwe.

Ten post edytował jol.us_ 14.04.2006, 20:41:53
Go to the top of the page
+Quote Post
dtb
post
Post #8





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


ustawiasz w pliku .htaccess, ktory jest w folderze files "deny from all" i problem z glowy. nawet znajac sciezke do pliku nie sciagniesz go. jedynie przez pobierz.php

Ten post edytował dtb 14.04.2006, 20:47:39
Go to the top of the page
+Quote Post
jol.us_
post
Post #9





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

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


bardzo mi pomogles, dziekuje.
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: 22.08.2025 - 16:28