Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zabezpieczenie plików
Forum PHP.pl > Forum > PHP
sakowa
witam
mam pytanko, jeśli stworzymy plik php do wyświetlania plików jpg, to ukryjemy nazwe pliku jpg. Potem przez mod rewrite chce ukryć nazwe tego pliku php zmieniając jego nazwę. Czy ten sposób jest dobry na podejrzenie ścieżki do obrazka. Aha chciałbym też pozyskać informacji jakimi sposobami mogą hakerzy wyciągnąć te obrazki (zaczynam dopiero z php i htaccess). Jeśli ktoś zna jeszcze ciekawe zabezpieczenia to z góry wielkie dzięki za odpowiedzi.
Kicok
Cytat
Aha chciałbym też pozyskać informacji jakimi sposobami mogą hakerzy wyciągnąć te obrazki


Hakerzy mogą otworzyć w przeglądarce http://twojastrona.pl/pokaz_obrazek.php?id_obrazka=1234 i dać Plik -> Zapisz jako ;]


A tak na poważnie, to wrzuć do katalogu z obrazkami pusty plik index.html aby zapobiec listowaniu plików.
Jeśli chcesz całkowicie zablokować dostęp do tego katalogu przez HTTP, to wrzuć do niego plik .htaccess o treści:
Kod
deny from all
sakowa
Cytat(Kicok @ 4.04.2008, 20:20:48 ) *
Hakerzy mogą otworzyć w przeglądarce http://twojastrona.pl/pokaz_obrazek.php?id_obrazka=1234 i dać Plik -> Zapisz jako ;]


Okey z tym masz racje ale u mnie to nie wchdzi w gre natomiast jeśli wezme deny from all to wtedy nie pokazują mi się te obrazki na stronie. A jesli o zabezpiecznie pliku htaccess to wystraczy to
<Files .htaccess>
order allow,deny
deny from all
</Files>
czy nie questionmark.gif
Kicok
Cytat
jeśli wezme deny from all to wtedy nie pokazują mi się te obrazki na stronie


No ale jeśli pojawiają się na stronie, to będzie można je zapisać na dysku. A jeśli Plik->Zapisz jako nie wchodzi w grę, to zawsze można na klawiaturze kliknąć PrintScreen ;]
Poza tym o deny from all pisałem w kontekście pliku PHP odpowiedzialnego za wyświetlanie obrazków.


Może napisz dokładniej co chcesz osiągnąć
sakowa
Bo chodzi o to żeby użytkownik nie zobaczył w jakim katalogu przetrzymuje te obrazki. A o zapisywanie mi nie chodzi.
bełdzio
to w czym problem? smile.gif jako parametr skryptu pobieraj nazwe pliku, a poźniej za pomocą readfile wczytaj go z "tajnego" katalogu - pamiętaj o wysłaniu odpowiedniego nagłówka Content-type
Kicok
No to skorzystaj z rozwiązania, które SAM podałeś w swoim pierwszym poście ;] A mianowicie plik php do wyświetlania obrazków. Później zamiast:
  1. <img src="tajny_katalog/obrazki/obrazek1.jpg" />

będziesz mógł pisać:
  1. <img src="pokaz_obrazek.php?nazwa=obrazek1.jpg" />



Przydatne funkcje:
- header" title="Zobacz w manualu PHP" target="_manual (poczytaj też komentarze do tej funkcji - powinien tam nawet być jakiś kod do wyświetlania obrazków, to możesz zgapić ;])
- str_replace" title="Zobacz w manualu PHP" target="_manual (wywal wszystkie wystąpienia / i \ w $_GET['nazwa'] )
- file_exists" title="Zobacz w manualu PHP" target="_manual
- pathinfo" title="Zobacz w manualu PHP" target="_manual
- strtolower" title="Zobacz w manualu PHP" target="_manual
- readfile" title="Zobacz w manualu PHP" target="_manual

Będziesz musiał wysłać nagłówek z typem obrazka, który można określić na podstawie jego rozszerzenia. Użyj pathinfo" title="Zobacz w manualu PHP" target="_manual do wyciągnięcia rozszerzenia z $_GET['name'], potraktuj je funkcją strtolower" title="Zobacz w manualu PHP" target="_manual i przy pomocy switch porównaj z popularnymi rozszerzeniami obrazków.
Jeśli nie znajdziesz obrazka albo nie rozpoznasz jego rozszerzenia, to wyślij nagłówek "Status: 404 Not Found"


Można jeszcze do tego dodać obsługę nagłówków "Content-Size", "Content-Disposition", "Last-Modified", "If-Modified-Since", "If-None-Match" czy "Etag"
sakowa
Spoko dzięki za posty, po prostu chciałem zaciągnąć informacji czy są lepsze sposoby na ukrywanie katalogów.

Pozdro party.gif
em1X
no są, wystarczy sobie utworzyć subdomenę, która będzie wskazywała na folder z obrazkami smile.gif
ja często tak robię zakładając subdomenkę static.domena.com, która wskazuje na obrazki w serwisie:

  1. <img src="http://static.domena.com/test.jpg" alt="tajne ;)" />


ewentualnie skorzystać z mod rewrite.
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.