Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Czy tak powinno wyglądać ładowanie plików w CMS
amii
post
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


Piszę coś na kształt systemu CMS. Mój index.php wygląda tak jak poniżej. Chciałem się spytać czy header i footer są ładowane pojedynczo czy przy każdym wczytaniu innej strony ? Strony są wczytywane na zasadzie index.php?p=nazwa_strony

  1. require_once('functions.php');
  2.  
  3. foreach ($_GET as $key => $value) {$$key = $value;}
  4.  
  5. foreach ($_POST as $key => $value) {$$key = $value;}
  6.  
  7.  
  8.  
  9. if(!isset($p)) {$p="main";}
  10.  
  11.  
  12. include_once('header.php'); //naglowek strony
  13. if(file_exists('view/'.$p.'.php')) include('view/'.$p.'.php'); //tresc strony
  14. include_once('footer.php'); //stopka
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
.radex
post
Post #2





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Nigdy, _nigdy_ tak nie rób.

Robiąc "foreach ($_GET as $key => $value) {$$key = $value;}" pozwalasz komukolwiek z zewnątrz "wstrzyknąć" dowolną zmienną jaką sobie zażyczy — a to potencjalnie może umożliwić atak.

Co więcej, pozwalasz zaincludować dowolny plik jaki potencjalny atakujący chce. Tego też nie chcemy.

---

Odnośnie pytania — robi się tak, że jest tylko jeden plik, który wyświetla treść (index.php) — i po prostu przekazuje się jaką podstronę ma wyświetlić.

Oczywiście robi się to "trochę" inaczej niż Ty (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Turson
post
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat(.radex @ 1.05.2011, 19:06:34 ) *
Nigdy, _nigdy_ tak nie rób.

Robiąc "foreach ($_GET as $key => $value) {$$key = $value;}" pozwalasz komukolwiek z zewnątrz "wstrzyknąć" dowolną zmienną jaką sobie zażyczy — a to potencjalnie może umożliwić atak.

Co więcej, pozwalasz zaincludować dowolny plik jaki potencjalny atakujący chce. Tego też nie chcemy.

---

Odnośnie pytania — robi się tak, że jest tylko jeden plik, który wyświetla treść (index.php) — i po prostu przekazuje się jaką podstronę ma wyświetlić.

Oczywiście robi się to "trochę" inaczej niż Ty (IMG:style_emoticons/default/wink.gif)

Powiedzmy, że masz link index.php?podstrona=kontakt
Wykorzystujesz wtedy $_GET, w skrócie jeśli zmienna podstronna = kontakt, includujesz dany plik.
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 13:48