• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zabezpieczenie folderu z plikami pdf

Cloud VPS
0 głosów
746 wizyt
pytanie zadane 9 października 2017 w PHP przez Maciejunio Początkujący (430 p.)
Witajcie mam pytanie odnośnie zabezpieczenia plików.

Piszę sobie pewną aplikacje i generuje sobie w niej raporty w postaci pdf które zapisują sie w folderze w którym znajduje się strona. Chciałbym to zabezpieczyć tak, żeby niezalogowany użytkownik nie mógł zobaczyć pdf wpisująć w adresie przeglądarki np localhost/raporty/1.pdf

2 odpowiedzi

0 głosów
odpowiedź 9 października 2017 przez efiku Szeryf (75,160 p.)
Metoda łatwa, najmniej roboty:
Niech nazwy plików będą jakoś unikalne i dostępne przez jakiś czas na serwerze.

Metoda bardziej zaawansowana:
Trzymać pliki pdf wyżej niż główny katalog strony i zaciągać je za pomocą http://php.net/manual/en/function.fpassthru.php sprawdzając czy użytkownik ma odpowiedni token.
komentarz 9 października 2017 przez Maciejunio Początkujący (430 p.)
A co jeśli chciałbym ten raport otworzyć po roku np?

Pierwszy sposób raczej odpada, drugi zaraz zobacze
komentarz 9 października 2017 przez xandros Nałogowiec (29,450 p.)
Hmm... a jakby tak w katalogu z pdfami wymagac autoryzacji? basic auth (wiem, staroć, ale easy to do)

Jeśli apache, to jedna derektywa(?) w .htaccess, dodanie .htpasswd i gotowe.
Jeśli nginx, to jedna derektywa w ustawieniach serwera, dodanie .htpasswd i gotowe.
0 głosów
odpowiedź 9 października 2017 przez Assasz Nałogowiec (30,460 p.)

Może to rozwiązanie pomoże?

Oprócz tego jest jeszcze jedno dość proste rozwiązanie, lecz jedynie dla określonych użytkowników. Autoryzacja poprzez .htaccess i .htpasswd.

Najpierw wpisujesz taką komendę:

Dla XAMPPa:

/xampp/apache/bin/htpasswd.exe -c NAZWA_UZYTKOWNIKA

Linux:

htpasswd -c /sciezka/do/pliku/.htpasswd NAZWA_UZYTKOWNIKA

-c powoduje utworzenie nowego pliku .htpasswd przechowującego nazwy użytkowników i ich hasła, jeśli chcesz dodać nowych użytkowników to po prostu omiń ten przełącznik. Po tej komendzie zostaniesz poproszony o podanie hasła dwa razy dla swojego użytkownika. Plik .htpasswd będzie się znajdował od tej pory w tym katalogu, który określiłeś w komendzie (dla XAMPPa to bedzie /xampp/apache/bin/), możesz go przenieść gdzie indziej, tylko nie do katalogu dostępnego z poziomu webu (htdocs).

Potem dodajesz to do swojego pliku .htaccess:

<FilesMatch "\.(pdf)$">
    AuthType Basic
    AuthName "Restricted File"
    AuthUserFile sciezka/do/pliku/.htpasswd np. C:/xampp/apache/bin/.htpasswd
    require valid-user
</FilesMatch>

Dzięki temu każdy, kto będzie chciał wejść do pliku PDF będzie musiał podać swoją nazwę użytkownika (istniejącą w pliku .htpasswd) i hasło.

komentarz 10 października 2017 przez Maciejunio Początkujący (430 p.)
Takie zabezpieczenie już robiłem, tylko nie chce aby użytkownik musiał za każdym razem wpisywać bo jest to uciążliwe

Podobne pytania

0 głosów
0 odpowiedzi 117 wizyt
pytanie zadane 21 czerwca 2019 w Grafika i multimedia przez vilano Nowicjusz (120 p.)
+1 głos
1 odpowiedź 981 wizyt
0 głosów
0 odpowiedzi 237 wizyt

93,463 zapytań

142,459 odpowiedzi

322,727 komentarzy

62,840 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...