PDA

Zobacz pełną wersję : Jak uniemożliwić dostęp do pliku php, osobom które nie są zalogowane na stronie?



jasiek07
12-05-2014, 18:06
Witam, mam pytanie odnośnie dostępu do plików php na moim serwerze.
Na mojej stronie część artykułów jest dostępna tylko dla użytkowników premium. Artykuły te zawierają ramki, w których umieszczone są zawartości plików php, które znajdują się powiedzmy w folderze /www/embed/. Problem w tym, że każdy kto wie, że tam się znajdują może je odwiedzić bezpośrednio, bez logowania na strone, co wiąże się z tym, że jeśli zostaną gdzieś udostępnione, to każdy będzie mógł je przeglądać.
Ptyanie brzmi, jak zablokować bezpośredni dostęp do tych plików? Czyli aby były one dostępne tylko dla tych, którzy sa zalogowani i należą do danej grupy, lub prościej - aby zawartość pliku php była dostępna tylko z poziomu joomla?

Natknąłem się na taki skrypt:


<?php
defined('_JEXEC') OR defined('_VALID_MOS') OR die( "Direct Access Is Not Allowed" );
?>

natomiast, używając go dostęp do pliku będzie niemożliwy, ponieważ wczytuję go przez ramkę (a więc nie przez joomle).
Macie jakieś rozwiązanie?? Może z poziomu .htacces da się coś takiego zdziałać?

mjmartino
12-05-2014, 19:54
Użyć odpowiedniego komponentu do zarządzania plikami ....
http://extensions.joomla.org/extensions/directory-a-documentation/downloads

jasiek07
12-05-2014, 20:07
Cześć, dzięki za odpowiedź.
Nie wiem czy do końca wiesz co mi chodzi. Pliki do których chcę uniemożliwić bezpośredni dostęp to nie są pliki do pobrania, tylko zwykłe podstrony, które umieszczam w ramce na mojej stronie.

Chyba, że to ja nie mogę znaleźć na tej liście odpowiedniego rozszerzenia? Z tych które widzę pod linkiem który mi podrzuciłeś, to te moduły służą tylko do dysponowania plikami, które ludzie mogą pobierać potem. Albo wyświetlają listy plików w danym folderze... Nie do końca o to mi chodzi.

mjmartino
12-05-2014, 20:40
A jaka jest różnica czy plik się wyświetli czy możemy go pobrać ? i zobaczyć ?
Równie dobrze możesz to rozwiązać poprzez wyświetlanie kodu w kategorii gdzie dostęp mają zdefiniowani ludzie. (umieszczasz kod w artykule)

jasiek07
12-05-2014, 20:57
Bo plik php to player wideo, który odtwarza wideo z określonego linku. Player musi się znajdować na mojej stronie :)
Gdybym mógł umieścić kod php w artykule to nie głowiłbym się o to chyba :)
Poza tym, że w pliku php zawarty jest odtwarzacz, to jest też skrypt, który pobiera adres ip osoby, która go odwiedza, po czym kodując adres ip oraz pare innych dyrektyw, przekształca to wszystko w kod, który jest dodawany do adresu streamu, dzięki czemu następuje autoryzacja po stronie serwera (z ktorego nadawane jest wideo).
Kruczek w tym, że używam cloudflare i przez to php nie ma możliwości pobrania adresu ip odwiedzającego (zamiast tego dostaje ip od cloudflare) przez co całą autoryzacje diabli biorą, przez co w efekcie nie można odtworzyć filmu :)
Dlatego plik php znajduje się na innym serwerze (którego nie obsługuje cf) a wynik skryptu (odtwarzacz) jest umieszczany w ramce na prawidłowej stronie.

Jeszcze trochę pogłowię, jeśli nie uda mi się z tym no to cóż, zawsze pozostaje zrezygnować z cf. Co mi z optymalizacji, skoro każdy będzie mógł mi wykradać treści ze strony :)

Pozdro

tomaszek83
12-05-2014, 21:20
Gdybym mógł umieścić kod php w artykule to nie głowiłbym się o to chyba

To poczytaj trochę, bo jest to wykonalne.

jasiek07
12-05-2014, 21:49
Mówisz o umieszczeniu kodu php w artykule?

jasiek07
13-05-2014, 03:33
Nieważne, trochę kodu php i po kłopocie.

mjmartino
13-05-2014, 07:22
http://extensions.joomla.org/extensions/core-enhancements/coding-a-scripts-integration/custom-code-in-content/1023
Nic ostatnio wam się nie chce szukać nic a nic.