Veilig files includen?

Status
Niet open voor verdere reacties.
Je krijgt dus gewoon een HTML-pagina, net als via fopen().

Weet je dat zeker? Wat gebeurd er als je dit include:

PHP:
<?php
echo '<?php echo "hoi;" ?>';
?>

Heb het nog nooit geprobeerd maar volgensmij zou dat gewoon uitgevoerd worden, extern of niet. Het wordt alleen aan beide kanten van de verbinding geparset, maar als je output file code bevat wordt die volgensmij uitgevoerd.
 
Weet je dat zeker? Wat gebeurd er als je dit include:

PHP:
<?php
echo '<?php echo "hoi;" ?>';
?>

Heb het nog nooit geprobeerd maar volgensmij zou dat gewoon uitgevoerd worden, extern of niet. Het wordt alleen aan beide kanten van de verbinding geparset, maar als je output file code bevat wordt die volgensmij uitgevoerd.

Een php code echoen veroorzaakt vaak een error, maar soms geeft ie gewoon de code terug. Pas met eval() wordt de code in een string uitgevoerd...
 
Allereerst excuses voor mijn reactie, bedoelde het zeker niet zo ***lig als het er uit kwam, maar kreeg erg het gevoel dat ik gewoon werd weggeschreven als leugenaar zonder verstand, terwijl ik ook maar mijn best doe mijn kennis verder te ontwikkelen.

Dan heb je niet goed gelezen wat ik zei. Lees eens goed wat er staat:

"Als je uitsluitend include in een bepaalde map,"

Dat moet je dus afdwingen in je code, dus ook zorgen dat ../ e.d. niet werkt. Zo simpel is het, dan kun je hacken wat je wilt - een map anders dan die zul je nooit kunnen bereiken.
 
Dan heb je niet goed gelezen wat ik zei. Lees eens goed wat er staat:

"Als je uitsluitend include in een bepaalde map,"

Dat moet je dus afdwingen in je code, dus ook zorgen dat ../ e.d. niet werkt. Zo simpel is het, dan kun je hacken wat je wilt - een map anders dan die zul je nooit kunnen bereiken.

Het bericht was ook niet aan jou gericht =)
 
Weet je dat zeker? Wat gebeurd er als je dit include:

PHP:
<?php
echo '<?php echo "hoi;" ?>';
?>

Wat krijg je dan terug bij een include? "hoi" volgens mij.

Maar als je dit doet
PHP:
// http://www.helpmij.nl/forum/index.php
<?php
$var = "test";
?>

// http://localhost/include.php
<?php
include("http://www.helpmij.nl/forum/index.php");
echo $var;
?>
Lijkt mij weinig meer op te leveren dan een foutmelding dat de variabele niet gevonden kan worden :confused:
 
Je zet alles in een beveiligde map.
Verder zou je ook in je script dit kunnen zetten:

Script waarin je include (regel voor je include of boven aan je pagina
PHP:
<?php 
define('INCLUDES', TRUE); //Deze functie maakt een Constant aan met een willekeurige waarde in mijn geval TRUE
?>

Script van je include (regel 1 tot *)
PHP:
<?php 
/**
 * Deze functie kijkt of de Constant 'INCLUDES' niet gedefinieerd is
 * Als dit zo is kilt hij het script
**/
if( !is_defined('INCLUDES') ) { die('Je kan dit script niet rechtsteeks benaderen!'); }
?>

Het word op deze manier al een stuk lastiger gemaakt omdat je een bestand niet rechtstreeks kan benaderen
 
Nog beter is om bestanden met belangrijke informatie buiten je webroot te houden.
Includen kan dan nog prima maar extern aanroepen zit er niet in ;)
 
Bij mij staan inderdaad alleen plaatjes/css/javascript/index.php en userfiles in openbare mappen. Verder alles buiten webroot.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan