Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zabezpieczyc katalog z fotografiami
Forum PHP.pl > Forum > PHP
art
Witam!

Dluzszy czas nurtowala mnie taka sprawa: Jak zabezpieczyc katalog w ktorym skrypt z galerią przechowuje uploadowane zdjęcia... napisalem sobie skrypt do obslugi galerii i do wybranych fotek znajdujacych sie w galerii mają dostęp tylko zalogowaniu urzytkownicy ... no i wszytsko slicznie ale co z tego ze niezalogowany uzytkownik nie zobaczy fotki na stronie jak smialo moze dostac sie do katalogu gdzie sa fotki przechowywane poprzez odpowiednio spreparowany link odwolujacy sie bezposrednio do danej fotki na serwerze... czy jest jakis sposob na to zeby to zablokowac (zabezpieczyc)? bylbym wdzieczny za podpowiedzi i przyklady...
jono
Możesz:

1) wstawić plik index.php z treścią:

  1. <?php
  2.  
  3. header('Location: http://www.mojastrona.pl');
  4.  
  5. ?>


2) dodać odpowiedni plik htaccess.

http://home.pl/support/manual/features/htaccess

Poza tym przy wrzucaniu plików na serwer możesz nadać im losową nazwę, co utrudni wpisanie bezpośredniego adresu do pliku (lub jego odgadnięcie..)
hwao
jak rysunki maja byc dorbze chronione to mozesz je trzymac w bazie.
Mozesz nie podawac sciezki do obrazka tylo pliku php z id a on juz sobie po id pozna o jaki img chodzi i go zalaczy / albo header na rysunek
art
Cytat
Możesz:

1) wstawić plik index.php z treścią:

  1. <?php
  2.  
  3. header('Location: http://www.mojastrona.pl');
  4.  
  5. ?>


To juz zrobiłem ale tego typu zabezpieczenie to tylko taka prowizorka i uzytkownik nie wejdzie przez przegladarke i nie podgladnie plikow jakie w katalogu z fotkami sie znajdują... ale jeśli ze strony odczyta nazwe pliku to bez problemu się dostanie do fotki....

moj problem polega na tym ze powiedzmy na stronie pojawiaja sie miniatury fotek po kliknieciu w wybrana miniature jesli uzytkownik jest zalogowany otwiera sie podstrona z powiększoną fotką, jesli nie jest zalogowany to otwiera sie ta sama podstrona z tym ze zamiast pwiekszonej fotki wypisany jest tam na jej miejscu komunikat tekstowy informujacy ze aby zobaczyc tą fotke trzeba sie zalogowac...

Cytat
jak rysunki maja byc dorbze chronione to mozesz je trzymac w bazie.
Mozesz nie podawac sciezki do obrazka tylo pliku php z id a on juz sobie po id pozna o jaki img chodzi i go zalaczy / albo header na rysunek


takie zabezpieczenie jesli dobrze je zrozumialem tez mnie nie zadawala... moze
dodam jeszcze ze nazwy plikow sa tworzone wedle bardzo prostego schematu czyli: nazwa pliku i miniatury jest taka sama (znajduja sie w roznych katalogach) i zbudowane sa one w oparciu o pole 'id' z bazy (jaki identyfikator w bazi dla danej fotki taka tez jest jej nazwa)... stąd prowizoryczne (częściowe) zabezpieczenia mnie nie zadowalają... chcialbym zabezpieczyc to tak "na poważnie" biggrin.gif...



Cytat
2) dodać odpowiedni plik htaccess.

http://home.pl/support/manual/features/htaccess



Ten rodzaj zabezpieczenia pwnie bedzie najskuteczniejszy... i wlasnie o cos takiego mi chodzi... tylko problem polega na tym ze zielonego pojecia nie mam jak to zrobic? Bo to powinno dzialac tak ze jesli uzytkownik zaloguje sie w mojej galerii to skrypt powinien automatycznie w jakis sposob uzyskac dostep od htaccess do odpowiednich katalogow z fotkami ... czy ktos ma jakies przyklady?
Yarecki
Przenieś katalog piętro niżej, poza public_html. php będzie miało tam dostęp, a użytkownik z przeglądarką nie.
sobstel
proponuje takie cos :

- pliki graficzne znajduja sie powyzej public_html w katalogu GALLERY
- w drugim katalogu GALLERY dostepnym z www znajduja sie 2 pliki :
+ .htaccess z rewrite rule przekierowujacym pliki z rozszerzeniem jpg na index.php
+ index.php ktory sprawdza uprawnienia i albo zwraca plik graficzny albo przekierowuje do strony z komunikatem bledu (braku dostepu)

linki do plikow graficznych beda wygladaly normalnie :
www.strona.net/gallery/plik.jpg
MStaniszczak
Witam

Można jeszcze plik .htacces z zawartością:
Kod
Deny from all

I zamiast w <img ...> podawać link do obrazka umieszczać w nim link do skryptu wyświetlającego ten obrazek (np showpict.php?id=123).

Pozdrawiam
Marcin Staniszczak
sobstel
jelsi chodzi o moje rozwiazanie to :

Cytat
Można jeszcze plik .htacces z zawartością: Deny from all


nie, bo wtedy nie zadziala przekierowanie na index.php. wystarczy Options -Indexes

Cytat
I zamiast w <img ...> podawać link do obrazka umieszczać w nim link do skryptu wyświetlającego ten obrazek (np showpict.php?id=123).


tez nie, wlasnie chodzi o to zeby nazwa obrazka byla 123.jpg a nie showpict.php?id=123.
MStaniszczak
Cytat
jelsi chodzi o moje rozwiazanie to :


Cytat
Można jeszcze plik .htacces z zawartością: Deny from all

ie, bo wtedy nie zadziala przekierowanie na index.php. wystarczy Options -Indexes


Nie maiłem na myśli mieszania obu rozwiązań - tylko blokowanie dostępu do podkatalogou.



Cytat
Cytat
I zamiast w <img ...> podawać link do obrazka umieszczać w nim link do skryptu wyświetlającego ten obrazek (np showpict.php?id=123).



tez nie, wlasnie chodzi o to zeby nazwa obrazka byla 123.jpg a nie showpict.php?id=123.


Hmmm... A gdzie art napisał że takie rozwiązanie mu nie odpowiada?

Pozdrawiam
Marcin Staniszczak
sobstel
Cytat(MStaniszczak @ 2005-02-28 16:28:59)
Hmmm... A gdzie art napisał że takie rozwiązanie mu nie odpowiada?

jak wspomnialem na poczatku mjego postu pisalem o moim rozwiazaniu. poza tym, wydaje mi sie ze generowanie obrazkow z nazwami show.php?id=12 robi sie troche niewygodne w momencie gdy uzytkownik zechce uzyc opcji "Zapisz jako"


p.s. nie musisz podpisywac kazdego postu ;-))
MStaniszczak
Cytat
poza tym, wydaje mi sie ze generowanie obrazkow z nazwami show.php?id=12 robi sie troche niewygodne w momencie gdy uzytkownik zechce uzyc opcji "Zapisz jako"


Nie koniecznie - wyślij tylko odpowiedni header i będzie ok;-) Można przecież zrobić linka zapisz i wysłać (dodatkowo) header:
header("Content-Disposition: attachment; filename=obrazek.jpg");

Wiem że dodatkowa robota, ale wydaje mi się że takie zablokowanie katalogu, lub umieszczenie obrazków powyżej katalogu public_html (czy jak go tam zwać) i siłą rzeczy serwowanie obrazków również za pomocą skryptu jest tak naprawdę jedynym skutecznym sposobem zabezpieczenia obrazków.

Cytat
p.s. nie musisz podpisywac kazdego postu ;-))

Przyzwyczajenie z usenet-u (gdzie raczej częściej bywam) - chyba nie masz mi za złe?;-)

Pozdrawiam
Marcin Staniszczak :-D
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.