18. september 2007 - 22:56Der er
17 kommentarer og 1 løsning
Sikker include måde - php
Hej experter :D
Jeg skal bruge en måde at include mine filer på via index.php Har lige nu hvor jeg skal skrive ved hver eneste (den kan godt blive lang den fil):
if ($_GET['page'] == 'info') { include("info.html"); }
Jeg tænkte på om man kunne lave så man bare kunne skrive i sine links: index.php?page=admin/bruger -> så finder den selv admin/bruger.php index.php?page=info -> så finder den info.php
man skal selvføglig ikke kunne include andre end ens egen php filer: http://cooltown.dk/index --> den måde må man ikke kunne bruge
og hvis den ikke finde noget at include (ugyldig $_GET['page'] eller ingen) så include forside.php
Når du i en PHP-betingelse får returneret 1, svarer til, at der returneres true. Returneres ikke noget, null eller 0, svarer det til, at der blev returneret false.
Det er ligemeget, om der i array'et står: "bagside" => 0
- eller om 'bagside' slet ikke er nævnt. Betingelsen i: if ( $allowed[$_GET["page"]] ) include($_GET["page"].".html");
- kan ikke opfyldes. Håber det er forståeligt. Ellers må du lige sige til ;o)
Gode ide det med at man skal give lov ("forside" => 1,) før man kan komme ind på siden, istedet for at det foregår automatisk. Det kan jo tit trickes til at scripten skal køre en dårlig fil eller medføre at siden bliver hacket!
- men det er en skræmmende almindelig fejl! Der advares meget ofte om metoden her i kategorien ... erikjacobsen og jeg går i hvertfald altid i sort, når vi ser den ;o)
showsource >> Dette viser på forbilledlig vis, hvorfor det er god kodepraksis, at sikre sig, at de modtagne data indeholder det forventede - og kun det ... i modsætning til at tjekke, om de indeholder noget ulovligt.
Ingen kan overskue alt, der kan udnyttes - men enhver kan overskue, om brugerinputtet er lovligt, hvis han holder sin applikation i kort snor.
En computer applikation er et af de få steder, totalitarisme er et must! Alt, hvad der ikke eksplicit er lovligt, er ulovligt. Foretager brugeren sig noget, der ikke er specificeret som lovligt, har han pr. automatik gang i noget ulovligt ... that's it 'n' that's that! Nak ham! ;o)
showsource >> ingen af os er født med den viden. Den stol, jeg sad i, da jeg selv blev gjort opmærksom på problematikken, lugtede sandelig ikke for godt efterfølgende! Selvom den slags er noget, det føles bedst at få at vide under fire øjne, er det trods alt bedre, du finder ud af det på denne måde. Sorry ... og så ikke helt alligevel ;o)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.