2008-12-01 14 views
5

Jakie są najlepsze praktyki dotyczące przechowywania plików przesłanych przez użytkowników?Najlepsze praktyki dotyczące przechowywania przesłanych plików w systemie plików

Obecnie jestem w trakcie następnego sposobu przechowywania plików:

<web_app_root>/course_material/<term_id>/<course_id>/<file_id> 

Jak widać, pliki są przechowywane zgodnie z kluczy w bazie danych. Myślałem, że to bezpieczniejsze, ponieważ nie będę musiał filtrować nazw plików i przekształcać niebezpiecznych postaci w bezpieczne postacie.

Jednak rozpoczynam nowy projekt i chciałem się dowiedzieć, czy nie jest tak źle powiązać system plików aplikacji internetowej z bazą danych. Czy mam przechowywać pliki w bardziej czytelnym formacie?

<web_app_root>/course_material/<term_name_underscored>/<course_name_underscored>/<file_name_underscored> 

Jeśli tak, jakie są najlepsze sposoby odfiltrowania nazw plików, aby były bezpieczne? A może sposób, w jaki robię obecnie najlepszą praktykę?

Odpowiedz

0

Proponuję, abyś wyjął z katalogu katalog_główny_programu_sieciowego.

Podoba mi się sposób, w jaki robisz w pierwszym przykładzie.

+0

Dopóki katalog plików nie znajduje się w katalogu htdocs, wszystko powinno być w porządku, prawda? Chcę tylko zachować wszystko związane z konkretnym projektem w jego własnym katalogu. – rlorenzo

+0

Rzeczywiście mówimy o bezpieczeństwie. Ale oddzielony dysk jest lepszym rozwiązaniem imho. – user32415

1

Zawsze po prostu zapisywałem pliki w katalogu z unikatowymi nazwami na podstawie identyfikatora GUID i mapowałem GUID do pliku w DB. Dopóki nie przeglądasz ręcznie plików i tym podobnych, jest to prawdopodobnie najłatwiejsze rozwiązanie (dotyczy również nieprawidłowych znaków).

Inną opcją jest przechowywanie ich jako BLOBS w bazie danych. Zrobiłem to również - ale było to wypełnienie replikowanego scenariusza DR, który powinny obsługiwać współczesne urządzenia NAS.

Jeśli z jakiegoś powodu zauważysz konieczność ręcznego przeglądania plików poza aplikacją, użycie nazwy długiej lub krótkiej (choć chcesz je przeglądać) będzie czystsze.

Powiązane problemy