Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak zabezpieczyć się przed wykonywaniem plików dołączanych do strony?
Forum PHP.pl > Forum > Przedszkole
Gordon1x
Strona zazwyczaj składa się z pliku index.php i kilku do niego dołączanych plików.

Przykładowa budowa pliku index.php
  1. <?
  2. include("naglowek.php");
  3. include("menu.php");
  4.  
  5. echo "Tytuł strony na środku";
  6.  
  7. include("srodek.php");
  8. include("stopka.php");
  9. ?>


Użytkownik powinien uruchomić stronę index.php z adresu np. http://serwer/index.php. Jednak wpisanie innego adresu, np. http://serwer/menu.php też jest możliwe i pokaże dane generowane przez skrypt menu.php.

Jak się przed tym zabezpieczyć?
matx132
mozesz dołaczyć do pliku index.php jakas zdefinowana zmienna
i sprawdzaj w kazdym z tych plików czy ta zmienna jest rónwa przypisaniu w index.php jeśli nie to powrótd do index.php
jesli tak to leci dalej ze skryptem:)
rafalp
W plikach dołączanych daj na początku strony:
  1. <?php
  2. defined('_wstaw') or header("Location: index.php");
  3.  
  4. ...
  5. ?>


a w index.php:

  1. <?php
  2. define('_wstaw', true);
  3. ...
  4. ?>
JoShiMa
Można też programować obiektowo. Klasy się nie da "uruchomić" smile.gif
-Methestel-
Skorzystaj z dobrodziejstw mod_rewrite i utwórz plik .htaccess z odpowiednią zawartością. Pamiętaj że mod_rewrite nie na każdym serverze jest włączony domyślnie.

W twoim przypadku będzie to coś takiego:

  1. <?php
  2. RewriteEngine on
  3. RewriteRule ^naglowek.php$ index.php [R]
  4. RewriteRule ^menu.php$ index.php [R]
  5. RewriteRule ^srodek.php$ index.php [R]
  6. RewriteRule ^stopka.php$ index.php [R]2
  7. ?>


Podstawowa zaleta to to, że w samych skryptach zmieniać nic nie trzeba.
bełdzio
zobacz ostatni punkt

http://www.beldzio.com/bezpieczenstwo-dost...do-plikow.freez
Methestel
Nie zalogowałem się i posta zedytować nie moge dlatego teraz jeszcze raz wstawiam co powinno być w pliku .htaccess zeby działało. (wstawienie tego jako kod php troche zniekształciło zawartość)

RewriteEngine on
RewriteRule ^naglowek\.php$ index.php [R]
RewriteRule ^menu\.php$ index.php [R]
RewriteRule ^srodek\.php$ index.php [R]
RewriteRule ^stopka\.php$ index.php [R]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.