Ukrywanie plików PHP

0

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

0

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.

<?php include('katalog/top.php'); Include('katalog/mid.php'); Include('katalog/bot.php'); ?>

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ę.

2

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

0

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ł.

1

teoretycznie niemożliwe

Security by obscurity to dupa, a nie security. Możliwe i w teorii i w praktyce.

0

dzek69 dzięki, działa tak jak chciałem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1