Skocz do zawartości

Dostęp do plików


graff

Rekomendowane odpowiedzi

Opis problemu:

1. mam obszerne archiwum plików pdf

2. na www "includowane" są tagiem <object>, serwowanym via Ajax

3. Do plików można się dostać podając bezwzględną ścieżkę - tą możliwość chcę zablokować.

4. Chodzi więc o to, żeby user miał prawa do pobrania plików wyłącznie poprzez www

5. Ograniczenia na chmodach odpadają, na IP też, nie wchodzi też w rachubę okienko z hasłem, etc.

Jak to zrobić ?

Odnośnik do komentarza
Udostępnij na innych stronach

Przecież przez FTP nie pobierze jeśli:

- nie zna login haslo;

- nie z znajdują się na otwartym koncie FTP;

Skoro te dwa warunki są spełnione może TYLKO i WYĄCZNIE pobrać wywołując żadanie GET z HTTP

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Rozumiem, że chcesz na swój sposób "zablokować" hotlink?

Za każdym razem generuj unikalny id upoważniajacy do pobrania pliku, przypisany do danego IP na czas potrzebny na pobranie.

Bez tego "id/chsum" czy jak to zwać, nie pozwalaj na pobieranie

Odnośnik do komentarza
Udostępnij na innych stronach

@Mion: zdaje się, że graff chciał, żeby ludzie pobierali wyłącznie ze strony, bez hotlink.

Wydaje mi się, że najlepsze będzie rozwiązanie z zamianą wywaołań HTTP GET w .htaccess na wywołanie skryptu, który pobierze plik i zaserwuje go przeglądarce.

Oficjalna strona serii Football Manager ( FM 2005, FM 2006 ) - CM Revolution

Forza MLKS Woźniki Śląskie!

Odnośnik do komentarza
Udostępnij na innych stronach

A cha :)

To np. nie dajesz linku bezpośredniego do zasobu [lub wyglądający na bezposredni za pomocą mod_rewritte], ale przez plik php. User wchodzi na strone dostaje ciacho potem wywołując pobranie po przez plik php sprawdzasz w tym pliku czy ma ciacho jeśli ma to pobiera bo pojawi się okienko zapisz plik. Jeśli zamieści pierwotny link gdzieś w serwisie i nastąpi wywołanie pliku "strażnika" php który nie stwierdzi ciacha nie udostępni zasobu...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

dzięki za sugestie :-)

Doprecyzuję sprawę: tak, chodzi ładowanie dokumentu wyłącznie na stronę.

Przez stronę - bardzo proszę, np. save as, ale nie metodą https://domena/katalog/dokument.

Chodzi o prewencję dot. transferów, wewnętrznych statystyk, etc.

Hotlinkowanie mam zablokowane. Includowanie obiektu ajaxem załatwia sprawę jawnej ścieżki ALE:

1. wystarczy rzucić okiem w robots.txt i wiadomo, gdzie szukać.

2. jeżeli plikom nadawane są numeryczne nazwy, to dosyć łatwo określić objetość zasobów.

3. jeżeli do tego dojdą pliki .doc, których przez <object> nie pociągę, to podaję ścieżki na tacy.

Poćwiczyć można np. tutaj: https://www.zeszyt.pl/pdf/1152/

I w tej wersji muszę zachować dostępność dla każdego,

ale https://www.zeszyt.pl/katalog/plik.pdf ma zwrócić 403 lub np zażądać hasła.

Nie mam na to pomysłu.

Odnośnik do komentarza
Udostępnij na innych stronach

Umieść pliki poza katalogiem dostepnym przez HTTP

i po wszystkim , z PHP bedziesz miał dostęp do tych plików a przez przegladarkę NIE

Oczywiscie można to zrobić przez .htaccess i zablokowac wszystkim dostęp do tego katalogu gdzie są pliki

Odnośnik do komentarza
Udostępnij na innych stronach

no to pozostaje tylko system ticketowy :) przy generowaniu strony html losujesz sobie numerek o 1 do miliona, nastepnie wrzucasz go wraz z numerem ip do bazy danych oraz dodajesz jako parametr do https://strona.pl/katalog/plik.pdf?numerek=125231 i przy kazdym wywolaniu https://strona.pl/katalog/plik.pdf sprawdzasz czy numerek z parametru sie zgadza z tym numerkiem z bazy :)

pozycjonuj.png
Odnośnik do komentarza
Udostępnij na innych stronach

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Może coś takiego

Fajne, ale w przypadku zipa wystarczy zwrócić window.open() Może mniej eleganckie, ale bez kombinacji.

Dwa pytania (piąta rano, więc już nie trybię):

1.jaką akcję uruchamiasz w onsubmit ?

2.można byłoby to jakoś zaadoptować do plików doc (pod IE do iframe a pod F analogicznie do zipa) ?

Odnośnik do komentarza
Udostępnij na innych stronach

Jak sądzę chodziło Ci o to żeby user nie miał bezpośredniego dostępu do ścieżki - adresu pobielanego pliku wiec podany przeze mnie przykład realizuje te założenia gdyż w podglądzie kodu HTML nie ma podanej ścieżki do pobieranych plików. Jest ona przezroczysta dla usera pod IE jak i FF ;)

Lub coś takiego:

https://www.hot.net.pl/test/do_pobierz2.html

Bezposrednie wywolanie pliku docelowego

https://www.hot.net.pl/test/pobierz2.php

uniemożliwia pobranie pliku ponieważ plik pobierz2.php sprawdza HTTP_REFERER

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, Mion. Dopiero dzisiaj znalazłem czas, żeby przetrawić Twoje propozycje i okazało się to, co musiało ;-) W pierwszej wersji serwisu tak właśnie maskowałem url-e. Trzeba będzie do tego wrócić. Thx za odświeżenie. Nie mniej, nie ma to przełożenia na tytułowy problem, ale już sobie odpuszczę.

Odnośnik do komentarza
Udostępnij na innych stronach

. Nie mniej, nie ma to przełożenia na tytułowy problem, ale już sobie odpuszczę.
W takim razie nie wiem jaki masz problem... :lol:

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

aj, wiedziałem, że z tym brakiem przełożenia, to przesadziłem ;-) oczywiście - ma. Maskarada jest skuteczna w obrębie serwisu. Przeciętny użytkownik wobec braku jawnej ściezki szybko się zniechęci do poszukiwania obejścia. I dobrze. Nie mniej, wywołania plików - realizowane z udziałem maskarady - wymagają zachowania praw odczytu, a z tego -> fizyczna możliwość odczytu poza serwisem. Szukam patentu na 403 przy wywołaniu bezpośrednim i jednocześnie 200 przy pośrednim.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności