include lukt niet...
Beste Lezers,
Ik loop hier mee een beetje vast..
En ik vraag de pagina aan met http://url.nl/?section=home&page=home
Ziet iemand hier wat ik verkeerd doe?
Alvast heel erg bedankt!
Ik loop hier mee een beetje vast..
Quote:
<h3>ERROR 404</h3>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$section = "sections/".$_GET['section'];
$page = $_GET['page'];
if (file_exists($section.$page.'.php')) {
include $section.$page;
}else{ ?>
$section = "sections/".$_GET['section'];
$page = $_GET['page'];
if (file_exists($section.$page.'.php')) {
include $section.$page;
}else{ ?>
<h3>ERROR 404</h3>
En ik vraag de pagina aan met http://url.nl/?section=home&page=home
Ziet iemand hier wat ik verkeerd doe?
Alvast heel erg bedankt!
Gesponsorde koppelingen:
Je vraagt nu deze include: sections/homehome.php
Owja natuurlijk!
Hardstikke bedankt!
Hardstikke bedankt!
Hoe ga je dit verder controleren? Want zoals het er nu staat is het lek.
Inderdaad, wat TJVB tvb al zegt. Dit script is zo lek als het maar kan. Je stelt de gebruiker in staat om elk bestand uit de opgegeven map te includen.
Gewijzigd op 02/01/2011 11:23:30 door Mike Smit
Niet alleen uit die map, je kunt alles includen waar het script bij kan.
En als als je ../index gebruikt kom je in een loop (tenminste als index het bestand is waar dit in staat) Je include dan steeds zichzelf.
En als als je ../index gebruikt kom je in een loop (tenminste als index het bestand is waar dit in staat) Je include dan steeds zichzelf.
Zo maak je het veilig:
Duidelijk?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$baseDir = __DIR__.'/sections';
// Check op niet ingestelde vars
$section = isset($_GET['section']) ? $_GET['section'] : '';
$page = isset($_GET['page']) ? $_GET['page'] : '';
// Los .. en andere narigheid op
$file = realpath(sprintf("%s/%s/%s.php", $baseDir, $section, $page));
// Check of de file bestaat en of deze onder de baseDir valt
if(file_exists($file) && strpos($file, $baseDir) === 0)
include $file;
else
error404(); // Een foutmelding
// De meest basic 404 melding. Geeft de standaardpagina van de browser weer
// Als je een eigen pagina wil maken, doe dat dan tussen de 2 regels in
function error404() {
header('HTTP/1.0 404 Not Found');
exit;
}
?>
$baseDir = __DIR__.'/sections';
// Check op niet ingestelde vars
$section = isset($_GET['section']) ? $_GET['section'] : '';
$page = isset($_GET['page']) ? $_GET['page'] : '';
// Los .. en andere narigheid op
$file = realpath(sprintf("%s/%s/%s.php", $baseDir, $section, $page));
// Check of de file bestaat en of deze onder de baseDir valt
if(file_exists($file) && strpos($file, $baseDir) === 0)
include $file;
else
error404(); // Een foutmelding
// De meest basic 404 melding. Geeft de standaardpagina van de browser weer
// Als je een eigen pagina wil maken, doe dat dan tussen de 2 regels in
function error404() {
header('HTTP/1.0 404 Not Found');
exit;
}
?>
Duidelijk?
Gewijzigd op 02/01/2011 14:41:57 door Pim -



