Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak zabezpieczyć się przed wykonywaniem plików dołączanych do strony?
Gordon1x
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


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ć?

Ten post edytował Gordon1x 4.07.2008, 14:26:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
matx132
post
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 19
Dołączył: 12.09.2005

Ostrzeżenie: (0%)
-----


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:)
Go to the top of the page
+Quote Post
rafalp
post
Post #3





Grupa: Zarejestrowani
Postów: 224
Pomógł: 18
Dołączył: 4.02.2003
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
JoShiMa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


Można też programować obiektowo. Klasy się nie da "uruchomić" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
--Methestel--
post
Post #5





Goście







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.
Go to the top of the page
+Quote Post
bełdzio
post
Post #6





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


zobacz ostatni punkt

http://www.beldzio.com/bezpieczenstwo-dost...do-plikow.freez
Go to the top of the page
+Quote Post
Methestel
post
Post #7





Grupa: Zarejestrowani
Postów: 46
Pomógł: 10
Dołączył: 30.06.2008

Ostrzeżenie: (0%)
-----


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]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:33