Skocz do zawartości
jasiek07

jak zablokować/zautoryzować bezpośredni dostęp do pliku php

Polecane posty

witam, mam stronę w joomli. W artykułach zamieszczam ramki z zawartością pewnych plików php, które znajdują się na innym serwerze.

W jaki sposób mogę skutecznie zablokować dostęp do tych plików poprzez osoby niepowołane (chodzi o to, że dostęp do tych artykułów ma tylko określona grupa użytkowników, lecz byle kto może uzyskać dostęp do tych plików poza joomlą, jeśli zna ich adres)?

 

php/htaccess referrer jest mało pomocny, bo można ustawić byle jaki header wysyłany przez przeglądarkę.

Z pewnością musi być jakiś dobry sposób.. Może jakaś autoryzacja, albo nie wiem... nie znam się na programowaniu, dlatego używam joomli... Chcę jakoś zablokować dostęp do tych plików, ponieważ ktoś mi robi na złość i wynosi wszystko na zewnątrz...

 

pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Średnio rozumiem o co Ci dokładnie chodzi.

 

Jeśli są to pliki php, możesz dodać na początku

 

if (!defined('URL')) exit();

 

I zdefiniować w confingu URL jako adres strony, tak więc wywołując ręcznie plik nic nie podejrzysz.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mogłabyś pokazać na przykładzie jak to dokładnie powinno wyglądać?

if (!defined('URL')) exit();

wrzucam do pliku php i co dalej?

Do artykułu w joomli wklejam ramkę:


<iframe src='http://adres-do-pliku-php.pl/iframe/plik.php'></iframe>

I co dalej? oprócz ramki domyślam się, trzeba wkleić jeszcze jakiś skrypt php.. No i czy to będzie działać z ramką? Jak nie to czy jest inny sposób, żeby pobrać zawartość pliku php bezspośrednio do artykułu zamiast za pomocą ramki?

 

 

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Nie wiem czy takie coś zadziała, ale może dać na drugim serwerze możliwy dostęp tylko z danego IP?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Jeżeli masz restrykcje na joomli to może zadziała coś takiego z tymi IP:

 

 

KLIENT <--restrykcja-joomla--> SerwerA <--sprawdzanie-ip-serwera--> SerwerB

 

Tylko w tedy byś musiał zastosować jakiś skrypt na joomli, który pobiera i przetwarza dany pliczek zamiast "podłączyć i przekazać" tak mi się wydaje.

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Właśnie ta restrykcja by mi się przydała, jednak nie wiem jak to osiągnąć, ponieważ plik php jest umieszczony w ramce. Ramka ma swoje odrębne środowisko, przez co "nie respektuje" żadnych skryptów z zewnątrz.

 

Mógłbym umieścić prosty kod wewnątrz pliku php:

defined( '_JEXEC' ) or die( 'Restricted access' );

co spowoduje, że plik nie może być uruchomiony poza joomlą. Jednak, żeby to zadziałało, musiałbym umieścić go jakoś inaczej w artykule niż ramką? Albo jakoś sprawić, żeby to ten plik ładował się jako artykuł?? Ale nie wiem jak...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie wiem jak to jest w Joomli ale może masz możliwość zapisywania sesji w bazie danych? Wtedy aby uzyskać dostęp do skryptu w parametrze GET przesyłasz do zewnętrznego skryptu identyfikator sesji który z kolei jest weryfikowany jest przez ten zewnętrzny skrypt w bazie danych Joomli. Podobnie możesz zrobić po adresach IP posługując się adresami IP zgromadzonymi w bazie danych Joomli.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy do tego artykułu w joomli możesz dodać jakiś snippet w php? Rozumiem że masz możliwość edycji tych plików php, które wrzucasz do ramki?

 

Oczywiście, pliki należą do mnie, poprostu umieściłem je na drugim serwerze.

 

Nie wiem jak to jest w Joomli ale może masz możliwość zapisywania sesji w bazie danych? Wtedy aby uzyskać dostęp do skryptu w parametrze GET przesyłasz do zewnętrznego skryptu identyfikator sesji który z kolei jest weryfikowany jest przez ten zewnętrzny skrypt w bazie danych Joomli. Podobnie możesz zrobić po adresach IP posługując się adresami IP zgromadzonymi w bazie danych Joomli.

 

Tak, generalnie joomla zapisuje sesje w ciasteczkach, a jak nie można zastosować ciasteczka to wykorzystuje bazę danych. Natomiast nie wiem jak dokładnie to wygląda... Wydaje mi się, że byłoby to trudne do osiągnięcia biorąc pod uwagę, że nie mam żadnej wiedzy na temat programowania (dlatego używam joomli, która jest prosta w obsłudze). Ale strzele w ciemno z pytaniem, może się nie zbłaźnię - generalnie aby odwiedzić artykuł, w któym znajduje się ramka, trzeba należeć do odpowiedniej grupy w joomli, co jest praktycznie niemożliwe do obejścia. Idąc tym tropem, można założyć, że sam fakt iż ktoś ma możliwość ujrzenia samego artykułu, dowodzi, że ma on prawo do wyświetlenia ramki. Da się to wykonać w taki sposób, że automatycznie po wejściu w artykuł, pobierze on za pomocą php ip użytkownika ($_SERVER['REMOTE_ADDR']; bodajże?), zapisze do jakiegoś ciasteczka, albo bazy danych po czym nastąpiłoby zweryfikowanie po stronie serwera z plikami php (lub bezpośrednio w pliku php) czy ip, które chce wyświetlić plik, jest zapisane w tym ciasteczku/bazie? O ile nie jest to zbyt skomplikowane i bezsensowne? No i skuteczne.. Mógłbym trochę zapłacić nawet.. żeby mieć spokój od tego złodzieja.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Weryfikowanie musi następować z poziomu skryptu który masz w ramce ponieważ to ten skrypt ma być ograniczany. W tym skrypcie należy dodać kod tj. łączenie się z bazą danych Joomli i weryfikacja czy użytkownik ma prawo dostępu. Moim zdaniem, tym sposobem najbardziej trafisz w to co chciałbyś osiągnąć. Jeżeli nie masz żadnej wiedzy na temat programowania to mógłbym się tym zająć, napisz na PW jaki budżet możesz na to przeznaczyć.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×