mmofacts.com

Eval und templates

gepostet vor 18 Jahre, 11 Monate von garyx7de
wie kann ich eval ausnutzen bzw die scripte sicherer machen?
test.php?tpl_uberschrift=$mim_spio

ich find nix wie ich das noch ausnutzen kann bzw was sind die üblichen risiken?


template meldung.tpl
 

$tpl_uberschrift
$tpl_body



test script
include('config.php');

$tpl_uberschrift = $_GET['tpl_uberschrift'];
eval ("\$hauptfenster .= \"".template("meldung")."\";");
echo $hauptfenster;

?>

config.php
		function template($template, $folder = '') {

global $configtpl;
static $templatecache;
if($folder!='') $folder .= '/';
if(!is_string($templatecache[$folder.$template])){
$templatecache[$folder.$template] = implode("",file($configtpl['templatefolder']."/".$folder."".$template.".".$configtpl['templateendung']));
}
return str_replace("\"","\\\"",$templatecache[$folder.$template]);
}
$mim_spio = '123456';

$configtpl = array();
$configtpl['templatefolder'] = 'templates';
$configtpl['templateendung'] = 'tpl';
?>
für verbesserrungen wär ich auch dankbar
gepostet vor 18 Jahre, 11 Monate von Dillo
ich versteh nicht ganz, warum du überhaupt eval() verwendest...
geht doch so auch:
include('config.php');

$tpl_uberschrift = $_GET['tpl_uberschrift'];
$hauptfenster .= template("meldung");
echo $hauptfenster;
?>
bzw direkt mit echo template("meldung");
gepostet vor 18 Jahre, 11 Monate von garyx7de
has jetzt nicht getestet aber müssten die variablen dann nicht global sein ?
gepostet vor 18 Jahre, 11 Monate von troopers
üblichen risiken oder besser das hauptrisiko ist alles und wirklich alles was innerhalb eval steht wird ausgefürt ergo ungeprüft (und bitte wie soll man alles prüfen was da reinkommen kann ? ) wird ausgefürt.

sprich teoretich kann mit dem richtigen code von anwender seite alles ausgefürt werden was vom script auf dem server ausfürbar ist bzw wozu das skript rechte hat.

ich denke das zeigt die gefahr nach möglichkeit solte man auf eval verzichten da wohl kaum der nutzen das risiko rechtvertigt
gepostet vor 18 Jahre, 11 Monate von garyx7de
gib mir mal nen beispiel code aber der muss ja schon im template stehen oder?
gepostet vor 18 Jahre, 11 Monate von Klaus
das geht doch auch simpler mit einem Templatesystem z.B.
Auch wenn du dir nur anschaust wie dort die Lösung ist.
gepostet vor 18 Jahre, 11 Monate von garyx7de
url? ^^ will nen simples das ned so viel schnick schnack hat
gepostet vor 18 Jahre, 11 Monate von Klaus
Original von garyx7de
url? ^^ will nen simples das ned so viel schnick schnack hat


in diesem Forum das Sticky, einloggen und unter php->templates schauen. :wink:
gepostet vor 18 Jahre, 11 Monate von Kampfhoernchen
Buah, phplib. Grauenhaft. Das zeugs is so langsam, selbst Smarty is da schneller.
gepostet vor 18 Jahre, 11 Monate von garyx7de
Original von Kampfhoernchen
Buah, phplib. Grauenhaft. Das zeugs is so langsam, selbst Smarty is da schneller.

was kannst du empfehlen?
gepostet vor 18 Jahre, 11 Monate von Kampfhoernchen
Marke eigenbau oder FastTemplate.
gepostet vor 18 Jahre, 11 Monate von garyx7de
Original von Kampfhoernchen
Marke eigenbau oder FastTemplate.

mit eval oder str_repl... ?

Auf diese Diskussion antworten