Witam. Chciałbym się dowiedzieć, w jaki sposób można ukryć pliki php. Mam np. pliki .php o nazwach: top_menu.php, footer.php itd.. Wiadomo że po wejściu w link: localhost/top_menu.php czy localhost/footer.php wyswietli cos/pustą stronę. Chcę aby wyświetlało w takich sytuacjach po prostu stronę błędu 404 czyli że podany adres URL nie istnieje. Chyba że jakoś inaczej sie robi takie pomocnicze pliki .php. Proszę o szybką pomoc i z góry dziękuję.
Pozdrawiam
Cześć
Nie wiem jakim celem chcesz to zrobić i po jaki guzik.
Jak dla mnie (choć Git Po to ja jeszcze nie jestem) robiąc stronę w PHP jest coś takiego jak include(), oraz może jeszcze być header().
A więc robiąc np pliki dajesz w innym katalogu niż główny.
W adresie masz tylko localhost/katalog/index.php nikt nie widzi jakie pliki zostały dołączone, więc żeby w nie wejść poza Tobą czyli twórcą danej strony musi znać dokładne nazwy pliku (teoretycznie niemożliwe).
Druga droga to header("Location: x"), plus jakieś wpisy i plik n start.
Trzecia droga to .httacces (nie znam się na tym ale na elektrodzie ktoś taki podobny temat miał).
Ale tak jak napisałem wyżej szkoda zachodu bo i tak tych plików nikt sobie pojedynczo nie wczyta, no chyba ze "Mojżesz" kupi sobie jakiegoś lapka i zacznie sprawdzać twoją stronę.
Pliki includowane najlepiej umieść w folderze - żeby burdelu nie robić.
Do folderu wrzuć .htaccess o treści:
deny from all
Wtedy otworzyć plików nie będzie się dało z poziomu przeglądarki (ale php będzie miał do nich dostęp).
Kolejny pomysł, bardzo dobry, ale nie zawsze możliwy (zależy od hostingu), powiedzmy, że pliki fizycznie są w lokalizacji
/home/adriano/mojastrona.pl/public_html/
- wpisując adres mojastrona.pl trafiasz właśnie na ten folder.
więc pliki umieszczasz np. w
/home/adriano/mojastrona.pl/include/
nie da się z przeglądarki wejść "wyżej" niż public_html
, a ty swoje pliki zaincludujesz przez include ('../include/costam.php');
Jako zabezpieczenie ekstra możesz i tam umieścić plik .htaccess
(w niczym nie przeszkadza, a powiedzmy, że w wyniku dziwnych zawirowań jedna domena wskazuje po prostu na /home/adriano/
- wtedy by się dało dostać do tych plików.
Kolejna rzecz - w folderze głównym w .htaccess
umieść: Options -Indexes
- uniemożliwi to listowanie zawartości folderu w którym nie ma pliku index.html czy index.php
Niektóre systemy CMS radzą sobie w taki sposób, że w pliku, który zawsze inkluduje wszystkie pozostałe jest zdefiniowana pewna stała np. define('IN_PHPBB', true)
, a w plikach włączanych na górze jest sprawdzanie wartości (i ustawienia) tej stałej, jeśli nie jest ustawiona, to znaczy, że nie jest plik inkludowany i pokazywany jest komunikat błędu.
Metoda z wyjściem poza public_html jest dobra, ale nie każdy serwer na to pozwalał.
teoretycznie niemożliwe
Security by obscurity to dupa, a nie security. Możliwe i w teorii i w praktyce.
dzek69 dzięki, działa tak jak chciałem :)