Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Ukrywanie plików *.jpg na serwerze
klima06
post 3.10.2012, 12:08:23
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 10
Dołączył: 21.10.2011
Skąd: UK / PL

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


Witam!
Pracuje nad strona, gdzie user po zalogowaniu bedzie mogl wyswietlic/pobrac wczesniej wybrany obraz. Zastanawiam sie jak schowac wszystkie obrazy, by byly niedostepne dla innych userow i osob niezalogowanych.
Myslalem nad wrzuceniem obrazow do bazy danych, ale na moim serwerze mam zaledwie 200mb na baze danych.

Pomysl na jaki wpadlem to:
Utworzyc folder na serwerze, w ktorym beda wszystkie obrazy. Dla tego folderu i wszystkich obrazow wewnatrz ustawic chmod, zeby dostep do nich mial jedynie serwer (btw. jaki to chmod bedzie? tongue.gif). Napisac prosty skrypt php, ktory sprawdzi sesje, czy uzytkownik jest zalogowany, potem sprawdzi w bazie danych czy dany uzytkownik powiniem miec dostep do tego obrazka - jesli tak skrypt php zwroci obraz pobrany z zabezpieczonego folderu.

Czy moj pomysl jest dobry? Czy jest bezpieczny? Czy istnieje mozliwosc obejscia tych moich zabezpieczen?
Go to the top of the page
+Quote Post
erix
post 3.10.2012, 12:12:40
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. chyba najbardziej sensowny
  2. zależy od samego skryptu
  3. patrz: #2


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
b4rt3kk
post 3.10.2012, 12:15:06
Post #3





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Możesz zastosować coś w tym guście (w .httaccess):

  1. AddType text/html .jpg


Wtedy wpisanie bezpośredniego adresu do pliku w przeglądarce spowoduje, że plik .jpg będzie traktowany jako tekstowy.

Ten post edytował b4rt3kk 3.10.2012, 12:16:19


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
klima06
post 3.10.2012, 12:18:41
Post #4





Grupa: Zarejestrowani
Postów: 48
Pomógł: 10
Dołączył: 21.10.2011
Skąd: UK / PL

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


Cytat(b4rt3kk @ 3.10.2012, 12:15:06 ) *
Możesz zastosować coś w tym guście (w .httaccess):

  1. AddType text/html .jpg


Wtedy wpisanie bezpośredniego adresu do pliku w przeglądarce spowoduje, że plik .jpg będzie traktowany jako tekstowy.


A co z grafika szablonu, ktora rowniez jest w .jpg? Bedzie sie wyswietlac?
Go to the top of the page
+Quote Post
b4rt3kk
post 3.10.2012, 12:29:37
Post #5





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Tak, grafika będzie się wyświetlać bez problemu, jedynie bezpośredni dostęp do obrazka będzie zablokowany.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
erix
post 3.10.2012, 14:40:46
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Wtedy wpisanie bezpośredniego adresu do pliku w przeglądarce spowoduje, że plik .jpg będzie traktowany jako tekstowy.

I co z tego, jak sobie będę mógł go ściągnąć klikając PPM "Zapisz element docelowy"?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
b4rt3kk
post 3.10.2012, 14:47:59
Post #7





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Z tego co zrozumiałem, to konkretne obrazy mają być wyświetlane dla konkretnych userów, a nie że od razu jest już gotowa i pełna lista, a sposób ten pozwala tylko na zabezpieczenie nieautoryzowanego dostępu, np. jeśli ktoś zna ścieżkę do pliku. Oczywiście można to obejść poprzez hotlinkowanie, co też należałoby wyłączyć na serwerze. Przecież poprzez zmianę chmod w identyczny sposób można zapisać plik na dysk, tj. zapisz element docelowy.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
erix
post 3.10.2012, 15:00:36
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale czy Ty rozumiesz...? Z tego, co zauważyłem, to Chrome jest w stanie wyświetlić obrazek nawet z niepoprawnym MIME.

Poza tym chodzi tu o zablokowanie dostępu dla innych, a nie tylko o utrudnienie. Twoja metoda nie blokuje. Odpalę sobie w konsoli:

Kod
wget -o obraz.jpg http://example.org/skrypt.php

który serwuje obrazek wg Twojej metody i jaki będę miał problem? Żaden.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kyku
post 3.10.2012, 15:46:50
Post #9





Grupa: Zarejestrowani
Postów: 116
Pomógł: 8
Dołączył: 21.11.2008

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


Dostep do katalogu z obrazkami zablokowac dla kazdego, gleboko ukryc(srednie ale proste rozwiazanie) lub umieszczac w katalogu, do ktorego za pomoca przegladarki sie nie dostaniemy.
Obrazki serwowac poprzez skrypt php
np.
  1. <?php
  2. if($ma_dostep){
  3. Header('Content-Type: image/jpeg');
  4. readfile('/sciezka/do/pliku.jpg');
  5. }
  6. ?>

pamiętaj zabezpieczyc skrypt przed LFI jezeli bedziesz uzywal np. $_GET

Ten post edytował kyku 3.10.2012, 15:47:18


--------------------
eArena.pl - hosting serwerów gier multiplayer
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2025 - 05:53