Sytuacja początkowa
W przypadku witryny, którą konfiguruję, analizowałem całą dziedzinę zabezpieczania przesyłania / pobierania i ograniczania dostępu do nich na podstawie ról / możliwości użytkowników. Oczywiście przeczytałem kilka poprzednich pytań związanych z (ogólnym) tematem tutaj, ze względów referencyjnych najważniejsze / interesujące, które znalazłem:
- Jak chronić przesłane pliki, jeśli użytkownik nie jest zalogowany?
- Jak ograniczyć dostęp do przesyłanych plików?
- Ograniczanie dostępu do plików w określonym folderze
- Jak ustawić przesyłanie multimediów jako prywatne?
- Scalanie skryptu pobierania PHP w `functions.php`
Uwagi uzupełniające
Ogólnie rzecz biorąc, nie jest złym pomysłem, aby dodatkowo poprawić bezpieczeństwo instalacji WordPress - na przykład chronić swoją wp-config.php
- jest wiele rzeczy, które możesz i powinieneś zrobić. Istnieje mnóstwo informacji, jak to zrobić. Jestem w kontekście tego pytania głównie co do moich przesłanych / pobranych plików.
Przesyłanie Wordpress nie jest zabezpieczone, każdy może przeglądać uploads
folder, chyba że uniemożliwi się to za pomocą .htaccess
:
Options All -Indexes
.htaccess
Plik musi być umieszczony wewnątrz uploads
folderu. Ale to tak naprawdę ich nie zabezpiecza, tylko utrudnia znalezienie plików. Dodatkowo możesz zapobiec hotlinking
, zasadniczo ograniczając dostęp w oparciu o referrer
- chociaż jest to trochę inny przypadek, myślałem, że o tym wspominam, nie będę dalej opracowywał, możesz znaleźć wiele informacji na ten temat.
Oczywiście istnieje możliwość ustawienia postów jako prywatnych lub utworzenia niestandardowego typu postu z odpowiednimi plikami szablonów, aby ustawić ten typ posta na prywatny, ale to nie zabezpiecza twoich plików. To samo można powiedzieć o pakowaniu plików w warunkowe, takie jak is_user_logged_in()
lub is_admin()
.
Na marginesie jest wiele wtyczek, które obiecują, że twoje pliki będą bezpieczne i chronione, ale wiele z nich udaje, że to robi, niektóre z przyczyn są powyżej. Po prostu to rozmyślam, ponieważ jestem prawie pewien, że nie wszyscy to wiedzą - więc bądź tego świadomy.
Cel
Moim zamiarem było ograniczenie dostępu do (niektórych) plików i odpowiednio plików do pobrania. Aby mieć pewność, że nikt niechciany nie będzie miał do nich dostępu, nie przez przypadek lub jeśli ktoś zna nazwę pliku, pliki powinny być naprawdę prywatne i bezpieczne. W końcu tylko niektóre osoby powinny mieć dostęp bez wyjątków.
Ponadto nie musiałem prywatyzować całej strony, co rzeczywiście przyniosłoby efekt przeciwny do zamierzonego - jest ona wykorzystywana do publicznych prezentacji. Co więcej, chciałem, aby rozwiązanie było łatwe w użyciu, z tego prostego powodu, że niektórzy ludzie z nim pracujący nie są ekspertami komputerowymi, jak to często bywa.
Pytanie
Stąd pytanie, czy istnieje (względnie) prosty sposób ograniczenia dostępu do (niektórych) plików i odpowiednich plików do pobrania? I tak jak to zrobiłem, oznacza to sposób, aby naprawdę je chronić i zabezpieczyć?
Odpowiedzi:
Odpowiadam na moje własne pytanie, ponieważ znalazłem rozwiązanie, ale naprawdę interesują mnie Twoje opinie na jego temat. A może masz znacznie lepsze rozwiązanie, jeśli tak, naprawdę chciałbym tutaj o tym powiedzieć.
Wynik badań
Moje wyniki badań były następujące:
1. wydobycie plików poza katalog główny dokumentu,
www
folder;2. zabronić jakiegokolwiek bezpośredniego dostępu do folderu zawierającego pliki;
3. pozwól skryptowi obsłużyć żądania do plików;
Źródła tych punktów są - przynajmniej w większości - zawarte w moim pytaniu.
Rozwiązanie
files
zostanie utworzony folder o nazwiewp-content
;.htaccess
plik do nowegofiles
folderu:.htaccess
:Options All -Indexes
Order Deny,Allow
Deny from all
download method
;output file
;allowed to download
;Wnioski końcowe
Myślę, że rozwiązanie jest zgodne z wynikami badań. Oprócz umieszczania plików na zewnątrz. Ale ograniczenie dostępu do katalogu / ochrona katalogu i pozwolenie skryptowi na obsługę żądań plików jest pełne. Ograniczeniem dostępu zajmuje się,
.htaccess
a skrypt w tym przypadku jest wtyczkąwp-downloadmanger
.Uwagi uzupełniające
download method
naoutput file
i oczywiście jest to konieczne , że
.htaccess
plik jest w miejscuaby sprawdzić, czy wtyczka przejmuje rolę skryptu, spójrz na
wp-downloadmanger.php
- około linii od 207 do 227 (wersja 1.6.1); ma to na celu uzupełnienie połączonych informacjiźródło