Bezpieczeństwo plików na serwerze

0

Witam Was serdecznie! Pilnie potrzebuję Waszej porady. Otóż nie wiem jak zabezpieczyć zawartość jednego folderu na moim serwerze. W folderze tym są pliki, których nie chciałbym udostępniać. Zabezpieczenie hasłem odpada. Dlaczego? Stworzyłem system - klienci się logują, po wykonaniu pewnych czynności generowany jest plik (właśnie znajdujący się w tym cennym folderze), który to plik pokazywany jest zalogowanemu użytkownikowi. Chciałbym, aby nikt inny nie mógł tego pliku (wygenerowanego przez danego zalogowanego klienta) podejrzeć. Cenny folder znajduje się w folderze głównym (root). Pierwsze zabezpieczenie jakie wykonałem to wrzucenie chociażby pustego pliku index.php do tego folderu, jednak pliki w cennym folderze mają podobne nazwy i ktoś mógłby znając nazwę jakiegoś pliku po prostu wpisać w pasku adresowym kompletną ścieżkę wraz z nazwą tego pliku - i podejrzeć w ten sposób jego zawartość. Zabezpieczenie folderu hasłem odpada, bo wtedy nawet zalogowany klient (który właśnie jako jedyny powinien zobaczyć zawartość utworzonego przez niego pliku) nie będzie w stanie ujrzeć zawartości pliku (bo wyskoczy monit o podanie loginu i hasła). Znalazłem 2 rozwiązania: albo losowo generować nazwy plików tak, aby nikt nie mógł zgadnąć nazwy pliku na zasadzie podobieństwa/schematu albo napisać skrypt usuwający po pewnym czasie powstały plik. Czy ta druga opcja jest w ogóle możliwa? Można w jakiś sposób zrobić, aby utworzony w danym folderze na serwerze plik został usunięty po np. 10 minutach? Z góry dziękuję

2

Zablokuj całkowicie dostęp do tego folderu wrzucając tam plik .htaccess o treści:
deny from all
Później piszesz w PHP skrypt, który sprawdzi, czy użytkownik jest zalogowany i dalej zaserwujesz treść. Jak to zrobić?

<?php
if (!costam_uzytkownik_zalogowany()) { //sprawdzamy logowanie
   echo('Odmowa dostępu.');
   exit();
}

//wysyłamy specjalny nagłówek, żeby przeglądarka pomyślała, że ściąga plik, a nie HTML
header('Content-Type: application/pdf'); //oczywiście zmień ten typ mime jeśli nie dajesz PDFów tylko coś innego, lista typów mime: http://www.iana.org/assignments/media-types/index.html
header('Content-Disposition: attachment'); //plik powinien być pobrany, a nie wyświetlony w przeglądarce
readfile('costam/costam2/folder_z_tajnymi_plikami/' . basename($_GET['plik'])); //odczytujemy plik

I klientom wtedy zamiast dawać linki bezpośrednie dajesz linki do skryptu:
http://example.com/wymieniony_wyzej_skrypt.php?plik=nazwa_tajnego_pliku.pdf

1 użytkowników online, w tym zalogowanych: 0, gości: 1