PHP - Jak zrobić plik zdatny wyłącznie do includowania przez inny
Jednolinijkowy snippet, który sprawi że niektóre pliki php będą nadawały się jedynie do bycia wczytanymi (includowanymi) przez inne.
A po co nakładać takie ograniczenie?
Często tworząc strony w języku PHP, w sposób naturalny powstają mi pliki, które służą jedynie do bycia wczytanymi przez inne części kodu. Zazwyczaj mogą to być jakieś klasy, funkcje, tego typu twory. Co prawda użytkownik takiej strony, nawet jeśli jakimś sposobem dojdzie do lokacji takiego pliku i tak najpewniej nie zobaczy żadnej zwartości ani nawet outputu, pod warunkiem że znajduje się w tych plikach jakaś logika, tym niemniej uważam, że warto ograniczyć możliwość wglądu do nich. Bardzo prosty i logiczny sposób odnalazłem kiedyś na tej stronie.
Jak nie pozwolić na bezpośredni dostęp do pliku?
Jeżeli jakiś plik ma być tylko i wyłącznie includowany do innego możemy w pierwszej jego linijce wkleić poniższy fragment:if(basename(__FILE__) == basename($_SERVER['PHP_SELF'])){exit();}
?>
Pytanie co robi ten fragment kodu? Otóż porównuje on nazwę obecnego pliku, z nazwą pliku jaka jest użyta w przeglądarce przez użytkownika i jeśli są takie same, co oznacz że plik nie jest includowany tylko ktoś próbuje uzyskać do niego bezpośredni dostęp, jego wykonanie zostaje przerwane. Proste i przydatne ;)
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!