Dennis: Schriftgrößen mit PHP verwenden

Beitrag lesen

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.