Hi Thomas,
<?php
session_start();
$default = "INC/css/style_01"; //standart css
$_SESSION["style"] = (isset($_GET["style"])) ? $_GET["style"] : (empty($_SESSION["style"])) ? $default : $_SESSION["style"];
?>
Diese Kurzform in Ehren, aber wenns dann doch etwas verschachtelt wird, dann nimm bitte lieber eine etwas ausführlichere, dafür verständlichere Variante:
if (empty($_SESSION['style'])) {
$default_style = 'INC/css/style_01.css';
$_SESSION['style'] = isset($_GET['style']) ? $_GET['style'] : $default_style;
}
So etwas erhöht die Lesbarkeit des Codes doch deutlich ;-)
<link href="<?php echo $_SESSION["style"]; ?>.css" rel="stylesheet" type="text/css">
Hiermit hats du eine ganz böse XSS Lücke in deiner Seite geschaffen, welche Cross-Site-Scripting (dafür steht XSS) ermöglicht. Rufe deine Seite doch mal mit…
?style=%22%20%2F%3E%3Cscript%20type%3D%22text%2Fjavascript%22%3Ealert%28%27Ich%20bin%20b%F6ser%20Javascript-Code%21%27%29%3Balert%28%27Ich%20k%F6nnte%20z.B.%20Passw%F6rter%20sniffen.%27%29%3B%3C%2Fscript%3E%3Clink%20href%3D%22
auf, das führt dazu, dass du folgendes an den Browser ausgibst:
<link href="" /><script type="text/javascript">alert('Ich bin böser Javascript-Code!');alert('Ich könnte z.B. Passwörter sniffen…');</script><link href=".css" rel="stylesheet" type="text/css">
Aus diesem Grund möchte ich dir die Funktion htmlspecialchars() dringend ans Herz legen ;-)
Viele Grüße,
~ Dennis.
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Weblog: Comboboxen mit Javascript - [apr_dbd_mysql unter Debian - so geht es doch \Update]