Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Blokowanie dostępu do pliku .php wszystkim oprócz lokalnej strony html
Forum PHP.pl > Forum > PHP
z-x
Sprawa jest dość prosta - chcę zamaskować URL pliku do którego linkuję. Załóżmy, że mam:
  1. <video src="load.php?id=1"></video>

  1. if($_GET['id'] == 1){ header('location: plik.mp4'); }


Sam plik load.php nie robi nic innego niż przekierowanie (header location:) do aktualnego pliku wideo. Problem oczywiście w tym, że gdy wejdę bezpośrednio na load.php?id=1, mogę ściągnąć plik. I tu moje pytanie - czy da się i jak zablokować dostęp do danego pliku wszystkim, poza żądaniem lokalnie serwera? Chciałbym, żeby gdy wejdziemy bezpośrednio na load.php pojawiał się np. jakiś komunikat, a gdy żądanie jest wysyłane przez stronę html z tego samego serwera, skrypt działa.

Zaznaczę, że do dyspozycji mam też .htaccess gdyby było lepiej. Jak zabezpieczyć w ten sposób URL? A może są lepsze sposoby?

vimeo.com robi coś podobnego ze swoim playerem html5 (gdy próbuję zapisać wideo prawoklikiem, zapisuję w istocie stronę html), ale nie mogę dojść na jakiej zasadzie to działa.
AndyPSV
  1. if($_SERVER['HTTP_HOST'] == 'IP.SERVERA') {
  2. // AKCJA
  3. } else die;
z-x
Chyba nie bardzo. Przecież $_SERVER['HTTP_HOST'] zawsze wyświetli nazwę (nie IP) serwera z którego odpalony jest skrypt. Mógłbym użyć referera, ale wiadomo jak niepewnie z tym w dzisiejszych czasach. Na razie opieram się na $_SERVER['HTTP_X_REQUESTED_WITH'], ponieważ zapytanie idzie z AJAXa. Ale czy to bezpieczne? Tzn. wiem, że wszystko co wysyłane do użytkownika nie jest 'bezpieczne' w żadnen sposób, ale vimeo jakoś fajnie to robi, że gdy chcę zapisać plik z menu kontekstowego, zapisuję w rzeczywistości tylko stronę internetową.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.