Sk!ppy Skrevet 17. februar 2010 Del Skrevet 17. februar 2010 Hei. jeg har kodet dette nå nettopp: <?php $cat = "cat"; // Kategori handler $item = "item"; // item handler $folder = "inc/"; // folder containing categori and items $default = "hoved"; // if no page selected $end = ".php"; // fileextension if(empty($_GET[$cat])) { require $folder.$default.$end; // default } else { if(empty($_GET[$item])) { require $folder.$_GET[$cat]."/".$default.$end; // default } else { if(file_exists($folder.$_GET[$cat]."/".$_GET[$item].$end)) { require $folder.$_GET[$cat]."/".$_GET[$item].$end; } else { echo '<center>ERROR!</center><br>Siden du gikk inn på virker ikke!'; } } } ?> noen som har noen forslag til hvordan gjøre den bedre? såvidt jeg ser nå, så er det noen logiske brister, som jeg er LITT usikker på hvordan fikse. takk. Lenke til kommentar
sxxxe83 Skrevet 19. februar 2010 Del Skrevet 19. februar 2010 Har ikke forslag til utbedringer. Men om du ikke har sett denne, så er den verd en titt Avansert dynamisk include. sXe Lenke til kommentar
Ernie Skrevet 19. februar 2010 Del Skrevet 19. februar 2010 (endret) Absolutt ikke bra å kjøre input rett inn i file_exists, include eller require. De er dessverre sårbare for null-byte. Dvs. at "dette/er/flere/mapper/fil\x00.php" medfører at file_exists leter etter "dette/er/flere/mapper/fil". Kombinert med forflytting oppover i mappehierakiet ved å bruke .. kan enhver fil på serveren inkluderes. Endret 19. februar 2010 av Ernie Lenke til kommentar
Sk!ppy Skrevet 20. februar 2010 Forfatter Del Skrevet 20. februar 2010 Hvordan skal jeg gjøre det ordentlig da? hvordan "låser" jeg den til inc/ mappa? Lenke til kommentar
Ernie Skrevet 20. februar 2010 Del Skrevet 20. februar 2010 Du må sjekke at input-en ikke inneholder null-byte eller ../ Lenke til kommentar
sxxxe83 Skrevet 26. februar 2010 Del Skrevet 26. februar 2010 Hvordan skal jeg gjøre det ordentlig da? hvordan "låser" jeg den til inc/ mappa? Kanskje implementere && in_array // Mappe med php filer som skal inkluderes $incFiles = 'inc'; // Legg alle php filene i mappen "inc" i array $pagelist $pagelist = glob("{$incFiles}/{*.php}", GLOB_BRACE); // finnes i array?? if(isset($_GET['folder']) && in_array($_GET['folder'],$pagelist)) { //inkludering } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå