Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Apache]Blokowanie bezpośredniego dostępu do pliku w katalogu
vonski
post
Post #1





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

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


Witam.

Mam taką sytuację...
Mam plik, powiedzmy o nazwie test.cvs i chciałbym mieć do niego dostęp tylko za pośrednictwem strony www, tzn:
w formularzu wpisuję sobie jakieś hasło, po wysłaniu formularza wpisane hasło porównywane jest z tym w bazie danych - jeśli jest ok - następuje przekierowanie do tego pliku i pojawia się okienko dialogowe do ściągnięcia pliku, jeśli nie - pojawia się komunikat, że hasło jest złe. Generalnie to już działa, tak jak to opisałem, problem w tym, że jeśli ktoś zna nazwę pliku i wpisze sobie domena.com/test.cvs w pasku adresu, to też mu się pojawi okienko do ściągnięcia pliku. Czy jest jakiś sposób, by zablokować bezpośredni dostęp (z pasku adresu) do pliku? .htaccess - dobrze kombinuję? Tylko jak? (IMG:style_emoticons/default/smile.gif) Problem mam dość duży bo w Apache'u potrafię jedynie zrobić przyjazne linki i nic więcej (IMG:style_emoticons/default/smile.gif)
Myślałem jeszcze żeby ewentualnie zablokować dostęp do całego katalogu, w którym znajduje się plik za pomocą autoryzacji HTTP, tylko wtedy hasło musiałoby być w pliku .htpasswd, tak? A ja chce żeby było w bazie i już (IMG:style_emoticons/default/winksmiley.jpg)

Z góry dzięki za odpowiedź.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
yevaud
post
Post #2





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


ja bym te wszystkie pliki wrzucil w miejsce do ktorego apache nie ma dostepu(w sensie dostepu publicznego (IMG:style_emoticons/default/winksmiley.jpg) ), a dostep do nich zalatwilbym przez jakis skrypt pt "getfile.php?haslo=costam" (IMG:style_emoticons/default/winksmiley.jpg)
plik getfile sprawdzalby czy haslo jest ok i jesli wszystko by gralo najpierw wysylalby odpowiedni header z mime, a pozniej wrzucal zawartosc pliku.

cos w ten desen:

  1. if ($_GET['haslo'] == 'dupa')
  2. {
  3. $file = 'monkey.gif';
  4.  
  5. if (file_exists($file)) {
  6. header('Content-Description: File Transfer');
  7. header('Content-Type: application/octet-stream');
  8. header('Content-Disposition: attachment; filename='.basename($file));
  9. header('Content-Transfer-Encoding: binary');
  10. header('Expires: 0');
  11. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  12. header('Pragma: public');
  13. header('Content-Length: ' . filesize($file));
  14. flush();
  15. readfile($file);
  16. }
  17. }


Ten post edytował yevaud 8.09.2010, 02:27:27
Go to the top of the page
+Quote Post
unloco
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 13.04.2010

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


Mam ten sam problem.

Mam drzewo katalogów:
  1. /index.php <!-- katalog główny, tutaj pliki całej strony -->
  2. /galleries/ <!-- tutaj tylko pliki graficzne -->


W jaki sposób mogę zrobić tak aby obraz można było odtworzyć tylko za pomocą konkretnej strony internetowej (dajmy na to www.serwer.pl) (plik otwiera się za pomocą photo_show.php - gdzie jest przeskalowany do 640x480, ale jeśli bym chciał udostępnić użytkownikowi pełny rozmiar pliku to jak to mam zrobić, żeby jednocześnie zablokować dostęp do pliku przy wpisywaniu pełnej ścieżki do adresu?) Chodzi mi o to, że jeśli user nie ma założonego konta na mojej stronie i konto nie jest aktywowane (to akurat umiem bez problemu zrobić) to plik photo_show.php nic mu nie pokaże.

Ale się rozpisałem i zagmatwałem. W skrócie:

Plik photo_show.php wyświetla pełen obraz jednakże przeskalowany jest do rozdzielczości 640x480 aby układ strony nie został zmieniony przez większe obrazy.

Teraz chciałbym zrobić w ten sposób, że:

-zalogowany user (który ma dostęp do zawartości pliku photo_show.php - w innym wypadku ten plik wyświetli komunikat, że musi się zalogować) kliknie w obraz prawym klawiszem myszy i go sobie może zapisać na dysku

ALE

-niezalogowany user jeśli wpisze adres bezpośrednio do pliku NIE MOŻE zobaczyć obrazu.

Da się to załatwić za pomocą htaccess? Bo w tym kierunku skoncentrowałem swoje poszukiwania ale rozwiązania nie potrafię znaleźć.

Z góry dziękuję za pomoc.
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:43