Ok, dass wäre dann die einfachere Lösung, aber wenn ich die Eingaben bei einem "<" nicht mehr annehmen würde, könnten sonstige HTML-Eigenschaften auch nicht mehr verwendet werden...
Natürlich kann man dann auch noch andere HTML Eigenschaften nehmen. Man muss ja nur das escapen, was man selber nicht unter Kontrolle hat, also alles was man aus $_POST, $_GET, $_REQUEST und teilweise auch aus $_SERVER(z.B. HTTP_USER_AGENT) liest.
Das WBB(das Foren-System von spieleprogrammierer.de) z.B. sichert als erstes alles was in $_POST und $_GET steht mit
htmlspecialchars() gegen XSS-Attacken und
mysql_real_escape_string() gegen SQL-Injections.
Ein PHP-Template sähe dann z.B. so aus:
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
|
<!DOCTYPE html>
<html>
<head>
<title>Titel</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><span style="font-weight: bold;">Benutzername:</span> <?php echo htmlspecialchars($_SESSION['Benutzer']); ?></p>
</body>
</html>
|
Man beachte Zeile 8
So ist dann nur der Benutzername gesichert, sodass der nicht von außen verändert werden kann oder gar mit JavaScript versehen werden kann.
MfG