![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 29.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki problem odnośnie bezpieczeństwa plików: Zalogowane osoby mogą uploadować pliki na mój serwer. Można ustawić opcję, że aby obejrzeć plik potrzebne jest podanie hasła. Przez określony czas do pliku ma dostęp tylko osoba, która wrzuciła ten plik na serwer. Po upływie tego czasu dostęp do pliku mają wszyscy użytkownicy sieci. Jeśli plik jest chroniony hasłem, trzeba podać to hasło żeby zobaczyć plik. Jakie rozwiązanie tego problemu jest najlepsze ? Narazie mam taki pomysł, że po wrzuceniu pliku na serwer zmieniam jego nazwę na losowy ciąg 32 znaków i umieszczam w katalogu dostępnym publicznie. Wydaje mi się, że dopóki ktoś nie zna nazwy pliku ( ciężko odgadnąć ten ciąg znaków ) nie będzie mógł go otworzyć. Oczywiście osoba, która wrzuciła ten plik na serwer, po zalogowaniu, ma udostępniony link do tego pliku. Po upływie określonego czasu każdemu wyświetla się link do tego pliku. No chyba, że plik jest zabezpieczony hasłem, wtedy najpierw trzeba podać to hasło. -------------------- Profesjonalne tworzenie stron www. Sklepy internetowe, strony firmowe, portale internetowe.
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
hmmm, nie lepiej dać do katalogu do którego nie można wejść z sieci? nazwę i tak dobrze losować, by nikt nie nadpisał pliku, a dostęp do pliku bym zrobił przez php coś w stylu
Kod if($jestdostep) readfile("/pliki/{$nazwazasobu}"); else header("Location: /brakdostepu.php"); dobrze by było poleceniem header ustalić jeszcze nazwę pliku, jak jeszcze zakombinujesz obsługą mod_rewrite to nikt nie będzie wiedział ze za tym jeszcze stoi skrypt php Ten post edytował okitoki 26.04.2009, 11:58:50 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat Narazie mam taki pomysł, że po wrzuceniu pliku na serwer zmieniam jego nazwę na losowy ciąg 32 znaków i umieszczam w katalogu dostępnym publicznie - kiepski pomysł, w dodatku skomplikowany. Nie ma sensu wynajdywać koła na nowo:1. Tworzysz folder na te pliki i blokujesz do niego dostęp przez http (najprościej to zrobić chyba przy pomocy htaccess) 2. Wrzucasz pliki do tego folderu nazywając je 1,2,3 itd. aż do nieskończoności 3. Wszystko zapisujesz w bazie: id pliku, oryginalną nazwę pliku, nazwę nadaną przez użytkownika, typ, rozszerzenie, czas dodania, kto dodał itp. 4. Gdy ktoś chce plik pobrać, to sprawdzasz te wzystkie uprawnienia i jeśli jest ok, to pobierasz i wysyłasz do użytkownika razem z odpowiednim headerem, nazwą itp. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 9 Dołączył: 6.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
4. Gdy ktoś chce plik pobrać, to sprawdzasz te wzystkie uprawnienia i jeśli jest ok, to pobierasz i wysyłasz do użytkownika razem z odpowiednim headerem, nazwą itp. Mam prośbę: mógłbyś zaimplementować? Mówię poważnie ![]() -------------------- www.quider.pl <- moja prywatna strona
Pomogłem? Kliknij Pomógł |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam prośbę: mógłbyś zaimplementować? Mówię poważnie ![]() Czytałem tylko jeden czy dwa posty z tematu ale pewnie chodzi o to:
-------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 9 Dołączył: 6.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Tak tak, to rozumiem, chodzi mi o to, że na przykład zapisuje plik w folderze pod nazwa zahaszowaną w md5, ale chce go przesłać pod nazwą np. z bazy danych.
Ten post edytował Quider 27.04.2009, 14:20:01 -------------------- www.quider.pl <- moja prywatna strona
Pomogłem? Kliknij Pomógł |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak tak, to rozumiem, chodzi mi o to, że na przykład zapisuje plik w folderze pod nazwa zahaszowaną w md5, ale chce go przesłać pod nazwą np. z bazy danych. pobierasz nazwę z bazy danych, hashujesz md5 i patrzysz czy są pasujące pliki do tego hasha... -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 9 Dołączył: 6.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
ale jak to przesłać w nagłówkach?
-------------------- www.quider.pl <- moja prywatna strona
Pomogłem? Kliknij Pomógł |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Chodzi ci o:
![]() -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
I pamiętaj, że różne przeglądarki mogą wymagać różnych nagłówków oraz by pliczor nie wysyłać do przeglądarki w całości, lecz porcjami lub nawet po jednej linijce. Poszukaj na forum, download plików był omawiany wielokrotnie, ja np. realizuję to takim kodem:
- $down_rate to wielkość porcji, warto też wstawić nazwę, typ mime oraz rozmiar pliku. W ten sposób po prostu wysyłasz dowolny zlepek bajtów jako cokolwiek pod dowolną nazwą. To w interesie usera jest, by nie pobierać i otwierać co popadnie. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 9 Dołączył: 6.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
No ja mam taki sam skrypt. Jak ten ostatni (niemalże identyczny) Problem jednak w tym, że jeżeli na serwerze mam plik o nazwie (dowolony ciag znakow).exe a chce go wysłać do pobrania jako program.exe.
-------------------- www.quider.pl <- moja prywatna strona
Pomogłem? Kliknij Pomógł |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 156 Pomógł: 15 Dołączył: 13.09.2003 Skąd: London Ostrzeżenie: (0%) ![]() ![]() |
$nazwa moze zawierac cokolwiek, np. program.exe
Ten post edytował gulldarek 29.04.2009, 22:25:49 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 9 Dołączył: 6.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
aha, czyli za to jaki plik pobrac z serwera odpoiwada funkcja do "odczytywania" pliku, jesli dobrze rozumiem. Ok, szkoda, że to nie ja jestem założycielem tematu bo należy cie się "pomogł"
![]() EDIT @down Wielkie dzieki ![]() Ten post edytował Quider 29.04.2009, 22:52:52 -------------------- www.quider.pl <- moja prywatna strona
Pomogłem? Kliknij Pomógł |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 156 Pomógł: 15 Dołączył: 13.09.2003 Skąd: London Ostrzeżenie: (0%) ![]() ![]() |
Dziala to nastepujaco:
Wysylasz do przegladarki naglowek Content-Disposition w ktorym definiujesz nazwe pliku pod jaka maja sie sciagnac dane (np. program.exe) Nastepnie wysylasz zawartosc pliku, ktory ma sie sciagnac, np. (dowolny ciag znakow).exe Czyli uzywajac kodu Pilsener bedzie to mniej wiecej tak:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:27 |