![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 0 Dołączył: 23.08.2007 Skąd: Częstochowa/Dubidze Ostrzeżenie: (70%) ![]() ![]() |
witam chciałbym zrobic w moim serwisie cos takiego ze jesli dane konto wykpoiło dany skrypt to ma mozliwosc go pobrania ewentualnie generuje mu unikalny link do skryptu.. jednak tak aby tego pliku nie mozna bylo udostepnic osob trzecim.. jak sie za to zabrac? nigdy nie mialem do czynienia z podobnym skryptem.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 9.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
1. PYTANIE DO KOMENTUJĄCYCH
Dlaczego Wy tak bardzo komplikujecie tak prostą sprawę ? Trzeba mieć masochistyczne skłonności by skorzystać z którejkolwiek rady. Oczywiście to moje subiektywne zdanie. 2. PYTANIE DO AUTORA Czy masz możliwość wprowadzania zmian na serwerze produkcyjnym ? (tam gdzie ma to wszystko działać, bo jasne że z serwerem testowym robisz co chcesz). 3. SUGESTIA Zapoznajcie się z tematem odrobinę zanim zaczniecie dawać dziwne rady. Przez chwilę myślałem że z autora tematu się po prostu nabijacie (moja subiektywna ocena). 4. MOJA RADA - JEŻELI NIE MASZ MOŻLIWOŚCI WPROWADZANIA ZMIAN NA SERWERZE Jeżeli chodzi o bardzo małe pliki to można wykorzystać PHP. Za pomocą header wysyłasz odpowiednie nagłówki takie jak: Kod header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Description: File Transfer"); header("Content-Length: ".filesize($url)); header("Content-Transfer-Encoding: binary"); header("Content-Disposition: attachment; filename=\"".basename($url)."\""); Następnie za pomocą fopen() otwierasz sobie plik który jest pod $url i w pętli linia po linii wypisujesz go. Tu należy pamiętać o drobiazgu. NIC przed lub PO pliku nie powinno zostać wyświetlone. Jeden durny biały znak i plik będzie błędnie zapisany u użytkownika. Z uwagi na to że będziesz korzystał z pętli a sam plik chwilę się będzie wypisywał użytkownikowi, możesz przekroczyć czas działania skryptu PHP co również zniszczy zawartość pliku (przerwany transfer + dodatkowe znaki jak treść błędu itp, kwestia ustawień serwera). Użytkownik nie dostanie bezpośredniego linku na serwerze. Sam plik może być trzymany w dowolnym miejscu. Dodatkowo możesz w dowolny sposób decydować czy rozpocząć jego wysyłanie użytkownikowi czy nie. 5. MOJA RADA 2 - JEŻELI MOŻESZ WPROWADZAĆ ZMIANY NA SERWERZE Metoda 1 ma jedną wadę. Nie wyślesz nią dużych plików a im gorszy transfer ma użytkownik tym większa szansa że wystąpi problem. Istnieje sposób na jego ominięcie. Trzeba sobie doinstalować rozszerzenie xSendFile do Apache. O xSendFile poczytasz w Google. Sporo piszą na jego temat. Jak nic się nie zmieniło to obecna wersja pozwala na wysyłanie plików DO 4GB. Wersja beta przekracza ten limit pozwalając na wysyłanie na prawdę dużych plików. Co do całej reszty to już Twoja wola jak to zabezpieczysz. Obie metody są wygodne i pewne. Ten post edytował dariuszp 4.10.2010, 13:56:49 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
1. PYTANIE DO KOMENTUJĄCYCH Dlaczego Wy tak bardzo komplikujecie tak prostą sprawę ? Trzeba mieć masochistyczne skłonności by skorzystać z którejkolwiek rady. kolega pytal o to jak zabezpieczyc dostep do plikow, od Ciebie otrzymal odpowiedz jak wysylac pliki za pomoca php. Sprawy sa oczywiscie powiazane, ale generalnie to co ma piernik do wiatraka. Pomysly byly rozne, ale dotyczyly tematu (IMG:style_emoticons/default/smile.gif) sugerujesz ze Twoje rozwiazanie Cytat
jest bardziej skomplikowane niz moje ktore zapronowalem zeby wysylac plik? oczywiscie headery wstawiasz jakie potrzebujesz, nie znamy nawet mime tych plikow Cytat Dodatkowo możesz w dowolny sposób decydować czy rozpocząć jego wysyłanie użytkownikowi czy nie.[...]Co do całej reszty to już Twoja wola jak to zabezpieczysz tylko ze kolega pytal jak zabezpieczyc, wiec o ta cala reszte ktora raczyles pominac Cytat Trzeba sobie doinstalować rozszerzenie xSendFile do Apache. O xSendFile poczytasz w Google. Sporo piszą na jego temat. Jak nic się nie zmieniło to obecna wersja pozwala na wysyłanie plików DO 4GB. Wersja beta przekracza ten limit pozwalając na wysyłanie na prawdę dużych plików. jedyna rzecz ktora wnosi cos do tematu (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 21:03 |