Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][Apache]Link do pliku na komputerze lokalnym, baza plików bez wyjścia na internet - zabezpieczenie Apache?
Jero
post 28.10.2008, 02:16:34
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 6.10.2004

Ostrzeżenie: (0%)
-----


Mam taki problem.
Robię bazę danych plików dźwiękowych, które są na lokalnym komputerze, który w żaden sposób nie jest... i nie ma być podłączany do internetu. Bazę oparłem o interfejs przeglądarkowy na Apache/PHP/MySQL. Sprawa jest następująca:
Z formularza, z pola file pobierana jest ścieżka do pliku. Ścieżki są przechowywane w bazie mysql. Problem polega na tym, że ta ścieżka potraktowana jako link nie powoduje otwarcia żądanego pliku. Link ma w tym momencie postać: file:///c:/Jakisfolder/jakisplik.wav, po kliknięciu nic się nie dzieje.
Nie mogę robić odnośników wewnątrz folderu ze stroną - bo to muszą być ścieżki do pliku - pliki są w różnych miejscach i na różnych dyskach. Strona ma tylko umożliwiać ich szybkie wyszukanie i otwarcie. Czy jest to jakieś zabezpieczenie serwera Apache przed uruchamianiem lokalnych plików? Gdy taki sam link robię na zwykłym pliku html, zapisanym byle gdzie, otworzonym w przeglądarce (bez udziału serwera) to wszystko działa... pliki się otwierają.
Czy da się to zrobić za pośrednictwem serwera Apache? Tak, aby uruchamiał pliki lokalne...
Go to the top of the page
+Quote Post
Zyx
post 28.10.2008, 07:09:28
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Jest to zabezpieczenie wprowadzane przez niektóre przeglądarki (np. FF, Opera) - pliki ściągane poprzez protokół HTTP nie mogą generować odnośników do zawartości na dysku lokalnym użytkownika. Czytałem gdzieś, że w niektórych dla konkretnych witryn można to wyłączyć, ale np. w Operze takiej opcji nie doszukałem się.

Co bym Ci polecił... skoro skrypt działa lokalnie i nikt nie będzie tam manipulować żadnymi danymi, możesz sobie spokojnie wyłączyć w php.ini opcję "open_basedir" i napisać skrypt, który ewentualnie odczytywałby żądane dane z dysku. Wtedy Twój odnośnik wyglądałby następująco:

Kod
<a href="pobierz.php?path=c:/costam/costam.wav">Kliknij!</a>


Transmisja wprawdzie będzie szła przez skrypt, ale przynajmniej będziesz mieć dostęp do danych na własnym dysku niezależny od przeglądarki.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
Maxik
post 28.10.2008, 13:09:06
Post #3





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Zamiast file:///c:/Jakisfolder/jakisplik.wav daj file://localhost/C:/Jakisfolder/jakisplik.wav może zadziała.


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
Zyx
post 28.10.2008, 13:20:50
Post #4





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Kurde, jak przeglądarki blokują dostęp do lokalnych plików, to czemu ma zadziałać? Zresztą, sprawdzałem - i jest tak, jak mówię.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
Maxik
post 28.10.2008, 14:19:47
Post #5





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Może dlatego, że jak wybieram opcję Otwórz z menu Plik przeglądarki to w pasku pojawia się włąśnie taki adres, więc chyba nie blokują, nie?


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
Zyx
post 28.10.2008, 21:36:16
Post #6





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Okienko Otwórz w Plik nie ma nic wspólnego z linkiem do lokalnych treści ściągniętych wraz z kodem HTML przez protokół HTTP. A o właśnie takich rzeczach mówimy, takie coś chce zrobić Jero i takie coś jest blokowane.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
Jero
post 30.10.2008, 22:15:50
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 6.10.2004

Ostrzeżenie: (0%)
-----


Co ciekawe plik nie otwiera się w przeglądarce, ale gdy wybierze się "Zapisz element docelowy jako" to plik się zapisuje.
Stwierdziłem, że będę musiał wprowadzić rygor zapisywania przez korzystających z komputera danych na jednej partycji (która będzie jednocześnie Document root'em). W ten sposób będe miał dostęp do całej struktury folderów.

Zastanawiam się czy byłoby możliwe przypisać do każdej partycji takiego document root'a (np. poprzez konfigurację virtualnych hostów w Apache i przypisanie każdemu dyskowi jakąś nazwe - domenę). Wtedy zamiast localhost/... by było np. dysk_d/..., dysk_e/..., dysk_f/...
Nie wiem czy to możliwe, a teraz nie chce mi się próbować, bo mam mało czasu. Jak ktoś jest ciekawy to niech spróbuje i opowie... smile.gif
Pozdrawiam i dziękuję za odpowiedzi.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2025 - 08:30